加载可能比较慢,可以尝试点击脚注标,会弹出相关内容
王道计算机网络视频 提取码: axin
考纲
- (一)数据链路层的功能
- (二)组帧
- (三)差错控制
检错编码:纠错编码 - (四)流量控制与可靠传输机制
流量控制、可靠传输与滑动窗口机制;停止-等待协议
后退N帧协议(GBN);选择重传协议(SR) - (五)介质访问控制
1.信道划分:频分复用、时分复用、波分复用、码分复用
2.随机访问:ALOHA协议;CSMA协议;CSMA/CD协议;CSMA/CA协议
3.轮询访问:令牌传递协议 - (六)局域网
局域网的基本概念与体系结构:以太网与IEEE 802.3;IEEE 802.11无线局域网;VLAN的基本概念与基本原理 - (七)广域网
广域网的基本概念:PPP协议 - (八)数据链路层设备
以太网交换机及其工作原理
复习提示
本章是历年考试中考查的重点。要求在了解数据链路层基本概念和功能的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议,特别是CSMA/CD协议、CSMA/CA协议和以太网帧格式,以及局域网的争用期和最小帧长的概念、二进制指数退避算法。此外,中继器、网卡、集线器、网桥和局域网交换机的原理及区别也要重点掌握。
3.1 数据链路层的功能
数据链路层的主要任务是实现帧在一段链路上或一个网络中进行传输。数据链路层协议有多种,但有三个基本问题则是共同的,即封装成帧、透明传输和差错检测。数据链路层使用的信道主要有两种:
- 1)点对点信道,使用一对一的通信方式。PPP协议则是目前使用最广泛的点对点协议。
- 2)广播信道,这种信道上连接的主机很多,使用一对多的广播通信方式。采用共享广播信道的有线局域网普遍使用CSMA/CD协议,而无线局域网则使用CSMA/CA协议。
3.1.1 数据链路层所处的地位
下面使用两台主机通过互联网进行通信的例子来了解数据链路层所处的地位,如图3.1所示。局域网1中的主机H1经过路由器R1、广域网及路由器R2连接到局域网2中的主机H2。主机 H1和H2都有完整的五层协议栈,而路由器在转发分组时仅使用协议栈的下三层。当主机H1向 H2发送数据时,从协议的层次上看,数据的流动如图3.2所示。数据进入路由器后要先从物理层上到网络层,在转发表中找到下一跳的地址后,再下到物理层转发出去。因此,数据从主机H1送到主机H2需要在路径中的各结点的协议栈向上和向下流动多次。
当我们学习数据链路层时,通常可以只关心协议栈中水平方向的各数据链路层。于是,当主机H1向主机H2发送数据时,可以想象数据就是在各相关设备的数据链路层之间沿水平方向传送的。如图3.3所示,即通过以下这样的链路:H1的链路层→R1的链路层→R2的链路层→H2的链路层,其中三段不同的数据链路可能采用不同的数据链路层协议。
- 1)链路。指从一个结点到相邻结点的一段物理线路。当进行数据通信时,两台计算机之间的通信路径往往要经过许多段这样的链路。可见链路只是一条路径的组成部分。
- 2)数据链路。当在一条链路上传送数据时,除了需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。有时也把上面所说的链路称为物理链路,而把数据链路称为逻辑链路。
- 3)帧。数据链路层对等实体之间进行逻辑通信的协议数据单元。数据链路层把网络层下交的数据构成帧发送到链路上,并把接收到的帧中的数据取出并上交给网络层。
3.1.2 为网络层提供服务
数据链路层通常可以为网络层提供如下三种服务:
- 1)无确认的无连接服务。源主机发送帧时不需要先建立链路连接,目的主机收到帧时不需要发回确认。数据传输的可靠性由高层负责。适用于误码率较低的信道,如以太网。
- 2)有确认的无连接服务。源主机发送帧时不需先建立链路连接,但目的主机收到帧时必须发回确认。源主机在所规定的时间内未收到确定信号时,就重传丢失的帧,以提高传输的可靠性。该服务适用于误码率较高的信道,如无线通信。
- 3)有确认的面向连接服务。帧传输过程分为三个阶段:建立链路、传输帧、释放链路。目的主机对收到的每一个帧都要返回确认。该服务适用于可靠性要求较高的场合。
[!NOTE] 有连接就一定要有确认,即不存在无确认的面向连接的服务。
3.1.3 链路管理
数据链路层连接的建立、维持和释放过程称为链路管理,它主要用于面向连接的服务。链路两端的结点要进行通信,必须首先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号初始化,然后才能建立连接,在传输过程中要能维持连接,而在传输完毕后要释放该连接。
3.1.4 封装成帧与透明传输
封装成帧是指在一段数据的前后分别添加首部和尾部,构成顿,帧是数据链路层的数据传送单元。帧长等于帧的数据部分长度加上首部和尾部的长度。首部和尾部中含有很多控制信息,它们的一个重要作用是确定帧的界限,即帧定界。接收方能从接收到的二进制比特流中区分出帧的起始与终止,即帧同步。如在HDLC协议中,用标识位F(01111110)来标识帧的开始和结束。在通信过程中,检测到帧标识位F即认为其是帧的开始,然后一旦检测到帧标识位F即表示帧的结束。DLC标准帧格式如图3.4所示。为了提高帧的传输效率,应当使帧的数据部分的长度尽可能地大于首部和尾部的长度,但随着帧长的增加,传输差错发生的概率也随之提高,发生差错时重传的代价也越大,因此每种链路层协议都规定了帧的数据部分的长度上限,即最大传送单元。
若在数据中恰好出现与帧定界符相同的比特组合(会误认为“传输结束”而丢弃后面的数据),则要采取有效的措施来解决这个问题,即透明传输。更确切地说,透明传输是指不论所传的数据是什么样的比特组合,都能够按原样无差错地在这个数据链路上传输。
3.1.5 流量控制
因为链路两端结点的工作速率和缓存空间存在差异,所以发送方的发送能力可能大于接收方的接收能力,此时若不适当限制发送方的发送速率,前面来不及接收的帧将被后面不断发送来的帧“淹没”,造成帧的丢失而出错。因此,流量控制实际上就是限制发送方的发送速率,使之不超过接收方的接收能力。这个过程需通过某种反馈机制,使发送方知道在什么情况下可以接着发送下一帧,而在什么情况下必须暂停发送,以等待收到某种反馈信息后继续发送。
在OSI体系结构中,数据链路层具有流量控制的功能。而在TCP/IP体系结构中,流量控制功能被移到了传输层。它们控制的对象不同。对数据链路层来说,控制的是相邻结点之间的数据链路上的流量,而对传输层来说,控制的则是从源端到目的端之间的流量。
3.1.6 差错检测
因为信道噪声等原因,帧在传输过程中可能会出现错误,这些错误分为位错和帧错。
- 1)位错:帧中某些位出现差错,通常采用循环冗余检验(CRC)来发现位错。
- 2)帧错:帧丢失、帧重复或帧失序等错误,它们都属于传输差错。
过去OSI的观点是:必须让数据链路层向上提供可靠传输。因此在CRC检错的基础上,增加了帧编号、确认和重传机制。收到正确的帧就要向发送方发送确认。发送方在一定期限内若未收到对方的确认,就认为出现了差错,因此进行重传,直到收到确认为止。现在,在通信质量较差的无线传输中,数据链路层依然使用确认和重传机制,向上提供可靠的传输服务。
对于通信质量良好的有线链路,数据链路层已不再使用确认和重传机制,即不要求向上提供可靠传输的服务,而仅需进行CRC检错,目的是将有差错的帧丢弃,保证上交的帧都是正确的,而对出错的帧的重传任务则由高层协议(如传输层TCP协议)完成。
3.1.7 本节习题精选
单项选择题
01.下列不属于数据链路层功能的是()。
数据链路层的主要功能包括:如何将二进制比特流组织成数据链路层的帧:如何控制帧在物理信道上的传输,包括如何处理传输差错:在两个网络实体之间提供数据链路的建立、维护和释放:控制链路上帧的传输速率,以使接收方有足够的缓存来接收每个帧。这些功能对应为帧定界、差错检测、链路管理和流量控制。电路管理功能由物理层提供。
02.下列不属于数据链路层功能的是()。
拥塞控制是网络层或传输层的功能,用于防止过多的分组注入网络而导致网络性能下降。
03.数据链路层协议的功能不包括()。
数据链路层的主要功能包括组帧,组帧即定义数据格式,A正确。数据链路层在物理层提供的不可靠的物理连接上实现结点到结点的可靠性传输,B正确。控制对物理传输介质的访问由数据链路层的介质访问控制(MAC)子层完成,C正确。为终端结点隐蔽物理传输的细节是物理层的功能,数据链路层不必考虑如何实现无差别的比特传输,D错误。
04.为了避免传输过程中帧的丢失,数据链路层采用的方法是()。
为防止在传输过程中帧丢失,在可靠的数据链路层协议中,发送方对发送的每个数据帧设计一个计时器,当计时器到期而该帧的确认帧仍未到达时,发送方将重发该帧。为保证接收方不会接收到重复帧,需要对每个发送的帧进行编号;海明码和循环冗余检验码都用于差错控制。
05.数据链路层为网络层提供的服务不包括()。
连接是建立在确认机制基础之上的,因此数据链路层没有无确认的面向连接服务。一股情况下,数据链路层会为网络层提供三种可能的服务:无确认的无连接服务、有确认的无连接服务、有确认的面向连接服务。
06.对于信道比较可靠且对实时性要求高的网络,数据链路层采用()比较合适。
无确认的无连接服务是指源机器向目标机器发送独立的帧,目标机器并不对这些帧进行确认。事先并不建立逻辑连接,事后也不用释放逻辑连接。若因线路上有噪声而造成某一帧丢失,则数据链路层并不检测这样的丢帧现象,也不回复。当错误率很低时,这类服务非常合适,这时恢复任务可留给上面的各层来完成。这类服务对实时通信也非常合适,因为实时通信中数据的迟到比数据损坏更不好。
07.流量控制实际上是对()的控制。
流量控制是通过限制发送方的数据流量而使发送方的发送速率不超过接收方接收速率的一种技术。流量控制功能并不是数据链路层独有的,其他层上也有相应的控制策略,只是各层的流量控制对象是在相应层的实体之间进行的。
08.下述协议中,()不是数据链路层的标准。
ICMP是网络层协议,PPP是在SLIP基础上发展而来的,都是数据链路层协议。
3.2 组帧
发送方依据一定的规则将网络层递交的分组封装成帧(也称组帧)。数据链路层之所以要将比特组合成以帧为单位传输,是为了在出错时只重发出错的帧,而不必重发全部数据,从而提高效率。组帧主要解决帧定界、帧同步、透明传输等问题。实现组帧的方法通常有以下4种。
[!NOTE] 组帧时既要加首部,又要加尾部。原因是,在网络中信息是以帧为最小单位进行传输的,所以接收方要正确地接收帧,就必须清楚该帧在一串比特流中从哪里开始到哪里结束(因为接收方收到的是一串比特流,没有首部和尾部是不能正确区分帧的)。而分组(即P数据报)仅是包含在帧中的数据部分(后面将详细讲解),所以不需要加尾部来定界。
3.2.1 字符计数法
字符计数法是指在帧首部使用一个计数字段来记录该帧所含的字节数(包括计数字段自身所占用的1个字节),如图3.5所示。当接收方读出帧首部的字节计数值时,就知道后面跟随的字节数,从而确定帧结束位置。因为帧与帧之间是连续传输的,所以也能确定下一帧的开始位置。
这种方法最大的问题在于若计数字段出错,即失去帧边界划分的依据,则接收方就无法判断所传输帧的结束位和下一帧的开始位,收发双方将失去同步,造成灾难性后果。
3.2.2 字节填充法
字节填充法使用特定字节来定界一帧的开始与结束,在图3.6的例子中,控制字符SOH放在帧的最前面,表示帧的开始,控制字符EOT表示帧的结束。为了使信息位中出现的特殊字符不被误判为帧的首尾定界符,可在特殊字符之前填充一个转义字符ESC来加以区分(注意,转义字符是ASCⅡ码中的控制字符,是一个字符,而非“E”“S”“C”三个字符的组合),以实现数据的透明传输。接收方收到转义字符后,就知道其后面紧跟的是数据信息,而不是控制信息。
在图3.6(a)所示的字符帧中,帧的数据段中出现EOT或SOH字符,发送方在每个EOT或SOH字符前再插入一个ESC字符(见图3.6(b)),接收方收到数据后会自己删除这个插入的ESC字符,结果仍得到原来的数据(见图3.6(c))。这也正是字符填充法名称的由来。若转义字符ESC也出现在数据中,则解决方法仍是在转义字符前插入一个转义字符。
3.2.3 零比特填充法
零比特填充法允许数据帧包含任意个数的比特,它使用一个特定的比特串01111110来标志一帧的开始和结束,如图3.7所示。为了不使数据字段中出现的比特流01111110被误判为帧的首尾标志,发送方先扫描整个数据字段,每遇到5个连续的“1”,就自动在其后插入一个“0”。经过这种比特填充后,就可保证数据字段中不会出现6个连续的“1”。接收方做该过程的逆操作,即每收到5个连续的“1”,就自动删除后面紧跟的“0”,以恢复原始数据。在数据链路层早期使用的HDLC协议中,便是采用这种比特填充的首尾标志法来实现透明传输的。
零比特填充法很容易由硬件来实现,性能优于字节填充法。
3.2.4 违规编码法
在物理层进行比特编码时,常采用违规编码法。例如,曼彻斯特编码方法将数据比特“1”编码成“高-低”电平对,将数据比特“0”编码成“低-高”电平对,而“高-高”电平对和“低一低”电平对在数据比特中是违规的(即没有采用),因此可借用这些违规编码序列来定界帧的起始和终止。局域网EEE 802标准就采用了这种方法。违规编码法不采用任何填充技术便能实现数据的透明传输,但只适用于采用冗余编码的特殊编码环境。
因为字符计数法中计数字段的脆弱性和字节填充法实现上的复杂性与不兼容性,所以目前较常用的组帧方法是零比特填充法和违规编码法。
3.2.5 本节习题精选
一、单项选择题
01.【2013统考真题】HDLC协议对01111100 01111110组帧后,对应的比特串为()。
HDLC协议对比特串组帧时,HDLC数据帧以比特模式01111110标识每个帧的开始和结束,因此在帧数据中只要出现5个连续的位“1”,就在输出的位流中填充一个“0”。因此,组帧后的比特串为01111100 00111110 10(下画线部分为新增的0)。
二、综合应用题
01.在一个数据链路协议中使用下列字符编码:
A 01000111
B 11100011
ESC 11100000
FLAG 01111110
在使用下列组帧方法的情况下,说明为传送4个字符A、B、ESC、FLAG所组织的帧而实际发送的二进制位序列(使用FLAG作为首尾标志,ESC作为转义字符)。
1)字符计数法。
2)使用字节填充法。
3)使用零比特填充法。
3.3 差错控制
实际通信链路都不是理想的,比特在传输过程中可能产生差错,1可能变成0,0也可能变成1,这就是比特差错。比特差错是传输差错中的一种,本节仅讨论比特差错。
通常利用编码技术进行差错控制,主要有两类:自动重传请求(Automatic Repeat reQuest, ARQ)和前向纠错(Forward Error Correction,FEC)。在ARQ方式中,当接收方检测到差错时,就设法通知发送方重发,直到收到正确的数据为止。在FEC方式中,接收方不但能发现差错,而且能确定错误的位置并加以纠正。因此,差错控制又可分为检错编码和纠错编码。
3.3.1 检错编码
检错编码都采用冗余编码技术,核心思想是在有效数据(信息位)被发送前,按某种关系附加一定的冗余位,构成一个符合某一规则的码字后发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使得码字遵从不变的规则。接收方根据收到的码字是否仍符合原规则来判断是否出错。常见的检错编码有奇偶检验码和循环冗余码。
- 奇偶检验码
- 1)奇检验码:附加一个检验位后,码长为n的码字中“1”的个数为奇数。
- 2)偶检验码:附加一个检验位后,码长为n的码字中“1”的个数为偶数。
例如,7位数据1001101对应的奇检验码为10011011,对应的偶检验码为10011010。它只能检测奇数位的出错情况,但不知道哪些位错了,也不能发现偶数位的出错情况。
- 循环冗余码
数据链路层广泛使用循环冗余码(Cyclic Redundancy Code,CRC)检错技术。
循环冗余码(CRC)检错的基本思想:
- 1)收发双方约定生成多项式G(x)(最高位和最低位必须为1)。k位位串可视为阶数为k-1的多项式的系数序列。例如,可用多项式x3+x2+1表示位串1101。
- 2)发送方基于待发送的数据和G(x),计算出冗余码,将冗余码附加到数据后面一起发送。
- 3)接收方收到数据和冗余码后,通过G(x)来计算收到的数据和冗余码是否产生差错。
假设一个待传送m位的数据,CRC运算产生一个r位的冗余码,称为帧检验序列(FCS)。这样形成的帧将由m+r位组成。在所要发送的数据后面增加r位冗余码,虽然增大了传输开销,但是可以进行差错检测,这种代价往往是值得的。这个带检验码的帧刚好能被预先确定的多项式 G(x)整除。接收方用相同的多项式去除收到的帧,若无余数,则认为无差错。
循环冗余码的计算
[!NOTE] 循环冗余码(CRC)是具有纠错功能的,只是数据链路层仅使用了它的检错功能,检测到帧出错则直接丢弃,是为了方便协议的实现,因此本节将CRC放在检错编码中介绍。
3.3.2 纠错编码
最常见的纠错编码是海明码,其实现原理是在有效信息位中加入几个检验位形成海明码,并把海明码的每个二进制位分配到几个奇偶检验组中。某一位出错后,就会引起有关的几个检验位的值发生变化,这不但可以发现错位,而且能指出错位的位置,为自动纠错提供依据。
现以数据码1010为例讲述海明码的编码原理和过程。
- (1)确定海明码的位数
- (2)确定检验位的分布
- (3)分组以形成检验关系
- (4)检验位取值
- (5)海明码的检验原理
3.3.3 本节习题精选
一、单项选择题
01.下列有关数据链路层差错控制的叙述中,错误的是()。
链路层的差错控制有两种基本策略:检错编码和纠错编码。常见的纠错码有海明码,它可以纠正一位差错。CC检验码可以检测出所有的单比特错误(记住该结论即可)。
02.下列属于奇偶检验码特征的是()
奇偶检验的原理是通过增加冗余位来使得码字中“1”的个数保持为奇数或偶数的编码方法,它只能检查出奇数个比特的错误。
03.字符S的ASCⅡ编码从低到高依次为1100101,采用奇检验,在下述收到的传输后字符中,错误()不能检测。
既然采用奇检验,那么传输的数据中1的个数若是偶数则可检测出错误,若1的个数是奇数则检测不出错误。
04.为了纠正2比特的错误,编码的海明码的码距应该为()。
海明码“纠错”d位,需要码距为2d+1的编码方案:“检错”d位,则只需码距为d+1。
05.对于10位要传输的数据,若采用海明码检验,则需要增加的冗余信息位数是()。
在k比特信息位上附加r比特冗余信息,构成k+r比特的码字,必须满足2r ≥ k+r+1。若 k的取值小于或等于11且大于4,则r=4。
06.下列关于循环冗余检验的说法中,()是错误的。
在使用多项式编码时,发送方和接收方必须预先商定一个生成多项式。发送方按照模2除法,得到检验码,在发送数据时将该检验码加到数据后面。接收方收到数据后,也需要根据该生成多项式来验证数据的正确性。选项A是正确结论,了解即可,无须掌握证明过程。
07.要发送的数据是1101 0110 11,采用CRC检验,生成多项式是10011,那么最终发送的数据应是()。
假设一个帧有m位,其对应的多项式为G(x),则计算冗余码的步骤如下:
①加0。假设G(x)的阶为r,在帧的低位端加上r个0。
②模2除。利用模2除法,用G(x)对应的数据串除①中计算出的数据串,得到的余数即为冗余码(共r位,前面的0不可省略)。
多项式以2为模运算。按照模2运算规则,加法不进位,减法不借位,它刚好是异或操作。乘除法类似于二进制运算,只是在做加减法时按模2规则进行。
08.【2023统考真题】若甲向乙发送数据时采用CRC检验,生成多项式为G(x)=X4+X+1(即G=10011),则乙方接收到比特串()时,可以断定其在传输过程中未发生错误。
二、综合应用题
01.在数据传输过程中,若接收方收到的二进制比特序列为10110011010,收发双方采用的生成多项式为G(x)=x4+x3+1,则该二进制比特序列在传输中是否出错?若未出错,则发送数据的比特序列和CRC检验码的比特序列分别是什么?
[!NOTE] CRC检验码的位数等于生成多项式G(x)的最高次数。
3.4 流量控制与可靠传输机制
在数据链路层中,流量控制机制和可靠传输机制是交织在一起的。
3.4.1 流量控制与滑动窗口机制
流量控制是指由接收方控制发送方的发送速率,使接收方有足够的缓冲空间来接收每个帧。常见的流量控制方法有两种:停止-等待协议和滑动窗口协议。数据链路层和传输层均有流量控制的功能,它们都用到了滑动窗口协议,但也有所区别,主要体现如下:
- 1)数据链路层控制的是相邻结点之间的流量,而传输层控制的是端到端的流量。
2)数据链路层的控制手段是接收方收不下就不返回确认。传输层的控制手段是接收方通过确认报文段中的窗口值来调整发送方的发送窗口。
停止一等待流量控制基本原理
停止-等待流量控制是一种最简单的流量控制方法。发送方每次只允许发送一个帧,接收方每接收一个帧都要反馈一个应答信号,表示可以接收下一帧,发送方收到应答信号后才能发送下一帧。若发送方没有收到接收方反馈的应答信号,则需要一直等待。发送方每发送完一个帧,就进入等待接收方确认信息的过程中,因而传输效率很低。
- 滑动窗口流量控制基本原理
滑动窗口流量控制是一种更高效的流量控制方法。在任意时刻,发送方都维持一组连续的允许发送帧的序号,称为发送窗口:同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口表示在还未收到对方确认信息的情况下,发送方最多还能发送多少个帧和哪些帧。同理,在接收方设置接收窗口是为了控制可以接收哪些帧和不可以接收哪些帧。
图3.9给出了发送窗口的工作原理,图3.10给出了接收窗口(WT=1)的工作原理。
发送方每收到一个按序确认的确认帧,就将发送窗口向前滑动一个位置。这样,就有一个新的序号落入发送窗口,序号落入发送窗口内的数据帧可以继续发送。当窗口内没有可以发送的帧(即窗口内的帧全部是已发送但未收到确认的帧)时,发送方就停止发送。
接收方每收到一个序号落入接收窗口的数据帧,就允许将该帧收下,然后将接收窗口向前滑动一个位置,并发回确认。这样,就有一个新的序号落入接收窗口,序号落入接收窗口内的数据帧即为准备接收的帧。若收到的帧落在接收窗口之外,则一律丢弃。
滑动窗口具有以下重要特性:
- 1)只有接收窗口向前滑动(同时接收方发送了确认)时,发送窗口才有可能(只有发送方收到确认后才一定)向前滑动。
- 2)从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只在发送窗口大小与接收窗口大小上有所差别:
停止-等待协议:发送窗口WT=1,接收窗口WR=1。
后退N帧协议:发送窗口WT>1,接收窗口WR=1。
选择重传协议:发送窗口W>T1,接收窗口WR>1。
若采用n比特对帧编号,则后两种滑动窗口协议还需满足WT+WR≤2n。 - 3)当接收窗口的大小为1时,可保证帧的有序接收。
- 4)在数据链路层的滑动窗口协议中,窗口大小在传输过程中是固定的(与传输层不同)。
3.4.2 可靠传输机制
可靠传输是指发送方发送的数据都能被接收方正确地接收,通常采用确认和超时重传两种机制来实现。确认是指接收方每收到发送方发来的数据帧,都要向发送方发回一个确认帧,表示已正确地收到该数据帧。超时重传是指发送方在发送一个数据帧后就启动一个计时器,若在规定时间内没有收到所发送数据帧的确认帧,则重发该数据帧,直到发送成功为止。
使用这两种机制的可靠传输协议称为自动重传请求(ARQ),它意味着重传是自动进行的,接收方不需要对发送方发出重传请求。在ARQ协议中,数据帧和确认帧都必须编号,以区分确认帧是对哪个帧的确认,以及哪些帧还未确认。ARQ协议分为三种:停止-等待(Stop-and-Wait)协议、后退N帧(Go-Back-N)协议和选择重传(Selective Repeat)协议。值得注意的是,这三种可靠传输协议的基本原理并不仅限于数据链路层,还可应用到其上各层。
在有线网络中,链路的误码率较低,为了降低开销,并不要求数据链路层向其上层提供可靠传输服务,即使出现了误码,可靠传输的问题也由其上层处理。而无线网络的链路易受干扰,误码率较高,因此要求数据链路层必须向其上层提供可靠传输服务。
(1)停止-等待协议的信道利用率
停止-等待协议的优点是简单,缺点是信道利用率太低。下面用图3.13来分析这个问题。假定在发送方和接收方之间有一个直通的信道来传送分组。
- (2)连续ARQ协议的信道利用率
此外,“信道平均(实际)数据传输速率=信道利用率×信道带宽(最大数据传输速率)”,或者“信道平均(实际)数据传输速率=发送周期内发送的数据量/发送周期”。
3.4.3 本节习题精选
一、单项选择题
01.下列有关停止-等待协议的叙述中,错误的是()。
02.下列情况中,会使停止-等待协议的效率变得很低的是()。
根据信道利用率的计算公式,当数据传输速率很高时,数据帧的发送时间很短:当源主机和目的主机的距离很远时,往返时延很大,此时的信道利用率很低。
03.在简单的停止-等待协议中,当帧出现丢失时,发送方会永远等待下去,解决这种死锁现象的办法是()。
在停止-等待协议中,发送方设置了计时器,在发送一个帧后,发送方等待确认,若在计时器计满时仍未收到确认,则再次发送相同的帧,以免陷入永久的等待。
04.在停止-等待协议中,为了让接收方能判断所收到的数据帧是否重复,采用()的方法。
在停止-等待协议中,使用1位来编号即可。若连续出现相同序号的数据帧,则表明发送方进行了超时重传:若连续出现相同序号的确认帧,则表明接收方收到了重复帧。
05.一个信道的数据传输速率为4kb/S,单向传播时延为30ms,若使停止-等待协议的信道最大利用率达到80%,则要求的数据帧长至少为()。
设C为数据传输速率,L为帧长,R为单程传播时延。停止-等待协议的信道最大利用率为(L/C)/(L/C+2R)=L/(L+2RC)=L/(L+2×30ms×4kb/s)=80%,得出L=960bit。
06.主机甲采用停止-等待协议向主机乙发送数据,数据传输速率是6kb/s,单向传播时延是100ms,忽略确认帧的发送时延。若信道的利用率为40%,则数据帧的长度为()。
本题忽略确认帧的发送时延,所以信道利用率=数据帧的发送时延/(数据帧的发送时延+往返时延)=0.4,解得数据帧的发送时延为4/30s,所以数据帧的长度为6kb/s×4/30s=800bit。
07.在停止-等待协议中,若发送方发送的数据帧中途丢失,则可能发生的情况是()。
停止-等待协议使用确认和重传机制,发送方每发送完一个帧,就要停下来等待接收方发回的确认帧,收到确认帧后才能发送下一帧,经过超时时间后未收到ACK帧则自动重传。
08.下列关于连续ARQ的说法中,错误的是()。
连续ARQ协议分为GBN协议和SR协议。SR的接收窗口大于1,接收方可以先收下失序但序号仍落在接收窗口内的那些数据帧。GBN的接收窗口等于1,接收方必须按序接收数据帧。
09.数据链路层采用后退N帧协议方式,进行流量控制和差错控制,发送方已经发送了编号 0~6 的帧。当计时器超时的时候,只收到对1、3和5号帧的确认,发送方需要重传的帧的数目是()。
GBN一般采用累积确认,因此收到了对5号帧的确认意味着接收方已收到1~5号帧,因此发送方仅需要重传6号帧,即需要重传的帧的数目是1。
10.数据链路层采用后退N帧协议,发送方已经发送了编号从0到6的帧。当计时器超时的时候,只收到对1、2、4号帧的确认,发送方需要重传的帧的数目是()。
后退N帧协议采用累积确认,确认的最后一个帧是4号帧,表示4号帧及4号帧之前的数据帧都已被正确接收,所以只需重传5号帧和6号帧这两个数据帧。
11.数据链路层采用了后退N帧协议(GBN),若发送窗口的大小是32,则至少需要()位的序列号才能保证协议不出错。
对于滑动窗口协议,序列号个数要大于或等于窗口数(发送窗口大小+接收窗口大小),所以在后退N帧的协议中,序列号个数不小于“发送窗口大小+1”,题中发送窗口大小是32,那么序列号个数最少应该是33个。所以最少需要6位的序列号才能达到要求。
12.若采用后退N帧的ARQ协议进行流量控制,帧编号字段为7位,则发送窗口的最大长度为()。
接收窗口整体向前移动时,新窗口中的序列号和旧窗口的序列号产生重叠,致使接收方无法区别发送方发送的帧是重发帧还是新帧,因此在后退N帧的ARQ协议中,发送窗口WT≤2n-1。本题中n=7,因此发送窗口的最大长度是127。
13.一个使用选择重传协议的数据链路层,若采用5位的帧序列号,则可以选用的最大接收窗口是()。
在选择重传协议中,若用n比特对帧编号,则发送窗口和接收窗口的大小关系为1 < WT ≤ WR,还需满足WR+WT ≤ 2n,所以接收窗口的最大尺寸不超过序号范围的一半,即WR ≤ 2n-1。
14.对于窗口大小为n的滑动窗口,最多可以有()帧已发送但没有确认。
在连续ARQ协议中,发送窗口大小≤窗口总数-1。例如,窗口总数为8,编号为0~7,假设这8个帧都已发出,下一轮又发出编号0~7的8个帧,接收方将无法判断第二轮发的8个帧到底是重传帧还是新帧,因为它们的序号完全相同。另一方面,对于后退N帧协议,发送窗口大小可以等于窗口总数-1,因为它的接收窗口大小为1,所有的帧保证按序接收。因此对于窗口大小为n的滑动窗口,其发送窗口大小最大为n-1,即最多可以有n-1帧已发送但没有确认。
15.对于选择重传协议,帧采用5位编号,接收窗口大小为14,则发送窗口最大为()。
在选择重传协议中,若用比特对帧编号,则发送窗口和接收窗口的大小关系为1< WR ≤ WT,此外还需满足WR+WT ≤ 2n,所以发送窗口的最大尺寸为25-14=32-14=18。
16.对无序接收的滑动窗口协议,若序号位数为,则接收窗口最大尺寸为()。
本题未直接告知使用的是选择重传协议,而是通过间接方式给出的。题目说无序接收的滑动窗口协议,表示接收窗口大于1,所以使用的是选择重传协议,接收窗口最大尺寸为2n-1。
17.采用滑动窗口机制对两个相邻结,点A和B的通信过程进行流量控制。假定颅的序号长度为4,发送窗口和接收窗口的大小都是7,使用累积确认。当A发送编号为0、1、2、3这四个帧后,而B接收了这4个帧,但仅应答了0、3两个帧,此时发送窗口将要发送的帧序号为(①):若采用选择重传协议来进行流量控制,则允许发送方在收到应答之前连续发出多个帧;若帧的序号长度为k比特,则接收窗口的大小(②)2k-1。 ①
发送窗口大小为7意味着发送方在没有收到确认之前可以连续发送7个帧,因为发送方 A已经发送编号为0~3的四个帧,所以下一个帧将是编号为4的帧。
②
当帧的序号长度为k比特时,对于选择重传协议,接收窗口 W ≤ 2k-1。
18.流量控制是实现发送方和接收方速度一致的机制,实现这种机制所采取的措施是()。
实现流量控制的常用方法是滑动窗口协议,它让接收方把自己的接收窗口大小反馈给发送方,以调节发送方的发送窗口大小,避免发送方因发送速度过快而导致接收方来不及接收。
19.假设两台主机之间采用后退N帧协议传输数据,数据传输速率为16kb/s,单向传播时延为250ms,数据帧的长度是128字节,确认帧的长度也是128字节,为使信道利用率达到最高,则帧序号的比特数至少为()。
为使信道利用率最高(即100%),要让发送方在一个发送周期内持续发送帧,不能出现发送窗口内的帧发完但还未收到第一个帧的确认帧的情况。发送周期=发送一个数据帧的时间+往返时延+发送一个确认帧的时间,发送一个数据帧或确认帧的时间均为128B÷16kb/s=64ms,发送周期=64ms+250ms×2+64ms=628ms。为保证发送方持续发送帧,在一个发送周期内至少要发送的帧数为628ms/64ms=10,即发送窗口大小至少为10,所以帧序号至少采用4比特。
20.在下列滑动窗口机制中,理论上可以达到100%信道利用率的是()。
Ⅰ.停止-等待协议
Ⅱ.后退N帧协议
Ⅲ.选择重传协议
信道利用率=发送周期内用于发送数据帧的时间/发送周期,其中发送周期=发送一个数据帧的时间+往返时延+发送一个确认帧的时间。停止-等待协议的发送窗口为1,不可能达到100%的信道利用率;后退N帧协议和选择重传协议只要发送窗口够大,都有可能达到100%的信道利用率。
21.数据链路层采用选择重传协议进行流量控制,发送方在收到0~3号帧的确认后,又收到了5号帧的确认,发送窗口内还有其他帧未发送,且未发生超时,则发送方将()
在选择重传协议中,接收方对正确收到的每个数据帧单独进行确认,不要求收到的数据帧是有序的。依题意,接收方已正确收到0~3号和5号数据帧,但不确定4号数据帧是否收到。因为没有发生超时,发送方不进行重传,所以接收该确认帧并继续发送剩下的数据帧。
22.【2009统考真题】数据链路层采用了后退N帧(GBN)协议,发送方已经发送了编号为0~7的帧。当计时器超时的时候,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是()。
在选择重传协议中,接收方对正确收到的每个数据帧单独进行确认,不要求收到的数据帧是有序的。依题意,接收方已正确收到0~3号和5号数据帧,但不确定4号数据帧是否收到。因为没有发生超时,发送方不进行重传,所以接收该确认帧并继续发送剩下的数据帧。
23.【2011统考真题】数据链路层采用选择重传协议(SR)传输数据,发送方已发送0~3号数据帧,现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是()
在选择重传协议中,接收方逐个确认正确接收的分组,不管接收到的分组是否有序,只要正确接收就发送选择ACK分组进行确认,因此ACK分组不再具有累积确认的作用。对于这一点,要特别注意与GBN协议的区别。此题中只收到1号帧的确认,0、2号帧超时,因为对1号帧的确认不具累积确认的作用,所以发送方认为接收方未收到0、2号帧,于是重传这两帧。
24.【2012统考真题】两台主机之间的数据链路层采用后退W帧协议(GBN)传输数据,数据传输速率为16kb/s,单向传播时延为270ms,数据帧长范围是128~512字节,接收方总是以与数据帧等长的帧进行确认。为使信道利用率达到最高,帧序号的比特数至少为()。
从上述公式可知,数据帧长越大,信道利用率就越高。数据帧长是不确定的,范围128~512B,在计算最小窗口数时,为了保证无论数据帧长如何变化,信道利用率都能达到100%,应以128B的帧长计算。因此,当最短的帧长都能达到100%的信道利用率时,发送更长的数据帧也都能达到100%的信道利用率。若以512B的帧长计算,则求得的最小窗口数在128B的帧长下,达不到 100%的信道利用率。首先计算出发送一个帧的时间128×8/(16×103)=64ms;发送一个帧到收到确认帧为止的总时间64+270×2+64=668ms:这段时间总共可发送668/64=10.4帧,即发送窗口≥11,而接收窗口=1,所以至少需要用4位比特进行编号。
25.【2014统考真题】主机甲与主机乙之间使用后退N帧协议(GBN)传输数据,主机甲的发送窗口尺寸为1000,数据帧长为1000字节,信道带宽为100Mb/s,主机乙每收到一个数据帧,就立即利用一个短帧(忽略其传输延迟)进行确认,若主机甲和主机乙之间的单向传播时延是50ms,则主机甲可以达到的最大平均数据传输速率约为()。
26.【2015统考真题】主机甲通过128kb/s卫星链路,采用滑动窗口协议向主机乙发送数据,链路单向传播时延为250ms,顿长为1000字节。不考虑确认帧的开销,为使链路利用率不小于80%,帧序号的比特数至少是()。
27.【2018统考真题】主机甲采用停止-等待协议向主机乙发送数据,数据传输速率是3k/s,单向传播时延是200S,忽略确认帧的传输时延。当信道利用率等于40%时,数据帧的长度为()。
28.【2019统考真题】对于滑动窗口协议,若分组序号采用3比特编号,发送窗口大小为5,则接收窗口最大是()。
29.【2020统考真题】假设主机甲采用停止-等待协议向主机乙发送数据帧,数据帧长与确认帧长均为1000B,数据传输速率是10kb/s,单项传播延时是200ms。则主机甲的最大信道利用率为()。
30.【2023统考真题】假设通过同一条信道,数据链路层分别采用停止-等待协议、GBN协议和SR协议(发送窗口和接收窗口相等)传输数据,三个协议的数据顿长相同,忽略确认帧长,帧序号位数为3比特。若对应三个协议的发送方最大信道利用率分别是U1、 U2和U3,则U1、U2和U3满足的关系是()。
二、综合应用题
01.在选择重传协议中,设序号用3比特编号,发送窗口WT=6,接收窗口WR=3。试找出一种情况,使得在此情况下协议不能正确工作。
02.假设一个信道的数据传输速率为5kb/s,单向传播时延为30ms,那么帧长在什么范围内,才能使用于差错控制的停止-等待协议的效率至少为50%?(忽略确认帧的发送时延。)
03.假定信道的数据传输速率为100kb/s,单程传播时延为250ms,每个数据帧的长度均为 2000位,且不考虑确认帧长、首部和处理时间等开销,为了达到最大的传输效率,试问帧的序号应为多少位?此时的信道利用率是多少?
04.在数据传输速率为50kb/s的信道上传送长度为1kbit的帧,总是采用捎带确认,帧序号长度为3bit,单向传播延迟为270ms。对于下面三种协议,信道的最大利用率是多少?
1)停止-等待协议。
2)后退N帧协议。
3)选择重传协议(假设发送窗口和接收窗口相等)。
05.对于下列给定条件,不考虑差错重传,停止-等待协议的实际数据传输速率是多少?
R=传输速率(16Mb/s)
S=信号传播速率(200m/μs)
D=接收主机和发送主机之间传播距离(200m)
T=创建帧的时间(2μs)
F=每帧的长度(500bit)
N=每帧中的数据长度(450bit)
A=确认帧ACK的帧长(80bit)
06.在数据传输速率为64kb/s的卫星信道上,甲方发送长度为512B的数据帧,乙方返回一个很短的确认帧(忽略确认顿的发送时延)。信道的单向传播延时为270ms,对于发送窗口大小分别为1、7、17和117的情况,甲方的实际数据传输速率分别为多少?
07.【2017统考真题】甲乙双方均采用后退N帧协议(GBN)进行持续的双向数据传输,且双方始终采用捎带确认,帧长均为1000B。Sx,y和Rx,y分别表示甲方和乙方发送的数据帧,其中x是发送序号,y是确认序号(表示希望接收对方的下一帧序号),数据帧的发送序号和确认序号字段均为3比特。信道传输速率为100Mb/s,RTT=0.96ms。下图给出了甲方发送数据顿和接收数据帧的两种场景,其中t0为初始时刻,此时甲方的发送和确认序号均为0,t1时刻甲方有足够多的数据待发送。
请回答下列问题。
1)对于图(a),t0时刻到t1时刻期间,甲方可以断定乙方已正确接收的数据帧数是多少?正确接收的是哪几个帧(请用Sx,y形式给出)?
2)对于图(a),从t1时刻起,甲方在不出现超时且未收到乙方新的数据帧之前,最多还可以发送多少个数据帧?其中第一个帧和最后一个帧分别是哪个(请用Sx,y形式给出)?
3)对于图(b),从时刻t1起,甲方在不出现新的超时且未收到乙方新的数据帧之前,需要重发多少个数据帧?重发的第一个帧是哪个帧(请用Sx,y形式给出)?
4)甲方可以达到的最大信道利用率是多少?
3.5 介质访问控制
介质访问控制所要完成的主要任务是,为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。图3.15是广播信道的通信方式,结点A、B、C、D、E共享广播信道,假设A要与C通信,B要与D通信,因为它们共用一条信道,若不加控制,则两对结点之间的通信可能会因互相干扰而失败。用来决定广播信道中信道分配的协议属于数据链路层的一个子层,称为介质访问控制(Medium Access Control,.MAC)子层。
常见的介质访问控制方法有信道划分介质访问控制、随机访问介质访问控制和轮询访问介质访问控制。其中前者是静态划分信道的方法,而后两者是动态分配信道的方法。
3.5.1 信道划分介质访问控制
信道划分介质访问控制 将使用同一传输介质的多个设备的通信隔离开来,把时域和频域资源合理地分配给这些设备。
信道划分的实质是通过分时、分频、分码等方法,将原来的一个广播信道,逻辑上分为几个用于在两个结点之间进行通信的互不干扰的子信道,即将广播信道转变为若干个点对点信道。
信道划分介质访问控制分为以下4种。
1.频分复用(FDM)
频分复用(FDM) 频分复用的优点在于充分利用了传输介质的带宽,系统效率较高,实现也较容易。
2.时分复用(TDM)
3.波分复用(WDM)
4.码分复用(CDM)
下面举一个直观的例子来理解频分复用、时分复用和码分复用。
假设A站要向C站运输黄豆,B站要向C站运输绿豆,A站和B站与C站之间有一条公共的道路,可类比为广播信道。在频分复用方式下,公共道路被划分为两个车道,分别提供给A站到C站的车和B站到C站的车通行,两类车可同时通行,但都只分到了公共车道的一半,因此频分复用(波分复用也一样)共享时间而不共享空间。在时分复用方式下,先让A站到C站的车走一趟,再让B站到C站的车走一趟,两类车交替地使用公共车道,因此时分复用共享空间,但不共享时间。码分复用与另外两种信道划分方式极为不同,在这种方式下,黄豆与绿豆放在同一辆车上运送,到达C站后,由C站负责把车上的黄豆和绿豆分开,因此码分复用既共享空间,又共享时间。
码分复用技术具有频谱利用率高、抗干扰能力强、保密性强、语音质量好等优点,还可以减少投资及降低运行成本,主要用于无线通信系统,特别是移动通信系统。
3.5.2 随机访问介质访问控制
在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户都能根据自己的意愿随机地发送信息,占用信道的全部速率。在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧冲突(也称碰撞),导致所有冲突用户的发送均以失败告终。为了解决随机访问发生的冲突,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无冲突地通过,这些规则就是随机访问介质访问控制协议,其核心思想是:胜利者通过争用获得信道,进而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。
可见,若采用信道划分机制,则结点之间的通信要么共享空间,要么共享时间,要么共享空间和时间:而若采用随机访问控制机制,则结点之间的通信既不共享时间,又不共享空间。因此,随机介质访问控制实质上是一种将广播信道转换为点到点信道的机制。
1.ALOHA协议
2.CSMA协议
ALOHA网络发生冲突的概率很大。若每个站点在发送前都先监听公用信道,发现信道空闲后再发送,则会大大降低冲突的可能性,从而提高信道的利用率,载波监听多路访问(Carrier Sense Multiple Access,CSMA)协议依据的正是这一思想。CSMA协议是在ALOHA协议基础上提出的一种改进协议,它与ALOHA协议的主要区别是多了一个载波监听装置。
根据监听方式和监听到信道忙后的处理方式的不同,CSMA协议分为三种。
三种不同类型的CSMA协议比较如表3.1所示
3.CSMA/CD协议
载波监听多路访问/冲突检测(CSMA/CD)协议是CSMA协议的改进方案,适用于总线形网络或半双工网络环境。对于全双工网络,因为全双工采用两条信道,分别用来发送和接收,在任何时候,发收双方都可以发送或接收数据,不可能产生冲突,所以不需要CSMA/CD协议。
载波监听是指每个站点在发送前和发送过程中都必须不停地检测信道,在发送前检测信道是为了获得发送权,在发送过程中检测信道是为了及时发现发送的数据是否发生冲突。站点要在发送数据前先监听信道,只有信道空闲时才能发送。冲突检测(Collision Detection)就是边发送边监听的,若监听到了冲突,则立即停止数据发送,等待一段随机时间后,重新开始尝试发送数据。
CSMA/CD的工作流程可简单地概括为“先听后发,边听边发,冲突停发,随机重发”。
现在考虑一种情况:某站发送一个很短的帧,但在发送完之前并未检测出冲突。假定这个帧在继续向前传播到达目的站之前和别的站发送的帧发生了冲突,因此目的站将收到有差错的帧(当然会把它丢弃)。然而,发送站却不知道发生了冲突,因此不会重传这个帧。为了避免发生这种情况,以太网规定了一个最短帧长(争用期内可发送的数据长度)。在争用期内若检测到冲突,则站就停止发送,此时已发送出去的数据一定小于最短帧长,因此凡长度小于这个最短帧长的帧,就都是因为冲突而异常中止的无效帧。最短帧长的计算公式为:
[!NOTE] 最短帧长=总线传播时延×数据传输速率×2
例如,以太网规定51.2μs为争用期的长度。对于10Mb/s的以太网,在争用期内可发送512bit,即64B。当以太网发送数据时,若前64B未发生冲突,则后续数据也不会发生冲突(表示已成功抢占信道)。换句话说,若发生冲突,则一定在前64B。因为一旦检测到冲突就立即停止发送,所以这时发送出去的数据一定小于64B。于是,以太网规定最短帧长为64B,凡长度小于64B的帧,就都是因为冲突而异常中止的无效帧,收到这种无效帧时应立即丢弃。若只发送小于64B的帧,如40B的帧,则需要在MAC子层中于数据字段的后面加一个整数字节的填充字段,以保证以太网的MAC帧的长度不小于64B。
一旦发生冲突,参与冲突的两个站点紧接着再次发送就没有意义,若坚持这样做,则将导致无休止的冲突。CSMA/CD采用截断二进制指数退避算法来确定冲突后重传的时机,它让发生冲突的站点在停止发送后,推迟一个随机的时间再重新发送。算法精髓如下:
1)确定基本退避时间,一般取2倍的总线端到端的传播时延2𝜏(即争用期)。
2)从离散的整数集合[ 0,1,...,(2k-1) ]中随机取出一个数,记为r,重传所需推迟的时间就是r倍的争用期,即2r𝜏。参数k=mi[重传次数,10],可见当重传次数不超过10时,参数k等于重传次数:但当重传次数超过10时,k就不再增大,而一直等于10。
3)当重传达16次仍不成功时,说明网络太拥挤,认为该帧永远无法正确发出,抛弃该帧并向高层报告出错(这个条件也容易忽略,请读者注意)。
假设适配器首次试图传送一帧,且在传送过程中检测到冲突。第1次重传时,k=1,随机数r从整数集合{0,1}中选择,可选的重传推迟时间是0或2𝜏。若再次发生冲突,则第二次重传时,随机数r从整数集合{0,1,2,3}中选择,因此重传推迟时间是在0,2𝜏,4𝜏,6𝜏这四个时间中随机选取的一个,以此类推。使用截断二进制指数退避算法可使重传需要推迟的平均时间随重传次数的增大而增大(也称动态退避),因此能降低发生冲突的概率,有利于整个系统的稳定。
CSMA/CD算法的归纳如下:
- ①准备发送:适配器从网络层获得一个分组,封装成帧,放入适配器的缓存。
- ②检测信道:若信道空闲,则开始发送该帧:若信道忙,则持续检测直至信道空闲。
- ③在发送过程中,适配器仍然持续检测信道。这里只有如下两种可能。
- 发送成功:在争用期内一直未检测到冲突,该帧肯定能发送成功。
- 发送失败:在争用期内检测到冲突,此时立即停止发送,适配器执行指数退避算法,等待一段随机时间后返回到步骤②。若重传16次仍不能成功,则停止重传并向上报错。
4.CSMA/CA协议
CSMA/CD协议已成功用于使用有线连接的局域网,但在无线局域网环境下不能简单地搬用CSMA/CD协议,特别是冲突检测部分,主要有两个原因:
1)接收信号的强度往往远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大,因此若要实现冲突检测,则硬件上的花费会过大。
2)在无线通信中,并非所有站点都能够听见对方,即存在“隐蔽站”问题。
为此,802.11标准定义了广泛用于无线局域网的CSMA/CA协议,它对CSMA/CD协议进行修改,将冲突检测改为冲突避免(Collision Avoidance,CA)。“冲突避免”并不是指协议可以完全避免冲突,而是指协议的设计要尽量降低冲突发生的概率。因为802.11无线局域网不使用冲突检测,一旦站点开始发送一个帧,就会完全发送该帧,但冲突存在时仍发送整个帧(尤其是长数据帧)会严重降低网络的效率,所以要采用冲突避免技术来降低冲突的概率。
因为无线信道的通信质量远不如有线信道,所以802.11标准使用链路层确认/重传(ARQ)方案,即站点每通过无线局域网发送完一帧,就要在收到对方的确认帧后才能继续发送下一帧。可见,802.11标准无线局域网采用的停止-等待协议是一种可靠传输协议。
为了尽量避免冲突,802.11标准规定,所有站完成发送后,必须等待一段很短的时间(继续监听)才能发送下一帧。这段时间称为帧间间隔(InterFrame Space,IFS)。帧间间隔的长短取决于该站要发送的帧的类型。802.11标准使用了下列三种IFS。
- 1)SIFS(短IFS):最短的IFS,用来分隔属于一次对话的各帧,使用SIFS的帧类型有ACK帧、CTS帧、分片后的数据帧,以及所有回答AP探询的帧等。
- 2)PIFS(点协调IFS):中等长度的IFS,在PCF操作中使用。
- 3)DIFS(分布式协调IFS):最长的IFS,用于异步帧竞争访问的时延。
802.11标准还采用了虚拟载波监听机制,即让源站将它要占用信道的持续时间(包括目的站发回ACK帧所需的时间)及时通知给所有其他站,以便使所有其他站在这段时间内都停止发送,这样就大大减少了冲突的机会。“虚拟载波监听”表示其他站并未监听信道,而是因收到了源站的通知才不发送数据,这种效果就像是其他站都监听了信道。当信道从忙态变为空闲时,任何一个站要发送数据帧,不仅要等待一个DIFS的间隔,而且要进入争用窗口,计算随机退避时间以便再次试图访问信道,因此降低了冲突发生的概率。当且仅当检测到信道空闲且这个数据帧是要发送的第一个数据帧时,才不使用退避算法,其他所有情况都必须使用退避算法,具体为:①在发送第一个帧之前检测到信道忙;②每次重传;③每次成功发送后要发送下一帧。CSMA/CA的退避算法与CSMA/CD的稍有不同(详见相关的教材)。
CSMA/CA算法的归纳如下:
1)若站点最初有数据要发送(而非发送不成功再进行重传),且检测到信道空闲,那么在等待时间DIFS后,就发送整个数据帧。
2)否则,站点执行CSMA/CA退避算法,选取一个随机退避值。一旦检测到信道忙,退避计时器就保持不变。只要信道空闲,退避计时器就进行倒计时。
3)当退避计时器减至0时(这时信道只可能是空闲的),站点就发送整个帧并等待确认。
4)发送站若收到确认,就知道已发送的帧被目的站正确接收。这时要发送第二帧,就要从步骤2)开始,执行CSMA/CA退避算法,随机选定一段退避时间。
若发送站在规定时间(由重传计时器控制)内未收到确认帧ACK,就必须重传该帧,再次使用CSMA/CA协议争用该信道,直到收到确认,或经过若干次重传失败后放弃发送。
处理隐蔽站问题:RTS和CTS
在图3.22中,站A和站B都在AP的覆盖范围内,但站A和站B相距较远,彼此都听不见对方。当站A和站B检测到信道空闲时,都向AP发送数据,导致冲突发生,这就是隐蔽站问题。
为了避免该问题,802.11标准允许发送站对信道进行预约,如图3.23所示。源站要发送数据帧之前,先监听信道,若信道空闲,则等待时间DIFS后,广播一个请求发送RTS(Request To Send)控制帧,它包括源地址、目的地址和这次通信所需的持续时间。若AP正确收到RTS帧,且信道空闲,则等待时间SIFS后,向源站发送一个允许发送CTS(Clear To Send)控制帧,它也包括这次通信所需的持续时间,源站收到CTS帧后,再等待时间SIFS,就可发送数据帧。若AP正确收到了源站发来的数据,则等待时间SIFS后就向源站发送确认帧ACK。AP覆盖范围内的其他站听到CTS帧后,将在CTS帧中指明的时间内抑制发送。CTS帧有两个目的:①给源站明确的发送许可;②指示其他站在预约期内不要发送。
需要说明的是,源站在RTS帧中填写的所需占用信道的持续时间,是从RTS帧发送完毕后,到目的站最后发送完ACK帧为止的时间,即“SIFS+CTS+SIFS+数据帧+SIFS+ACK”。而AP在CTS帧中填写的所需占用信道的持续时间,是从CTS帧发送完毕,到目的站最后发送完ACK帧为止的时间,即“SIFS+数据帧+SIFS+ACK”。
使用RTS帧和CTS帧会使网络的通信效率有所下降,但这两种帧都很短,与数据顺相比开销不算大。相反,若不使用这种控制帧,则一旦发生冲突而导致数据帧重发,浪费的时间会更多。信道预约不是强制性规定,各站可自行决定使用或不使用。只有当数据帧长超过某个数值时,使用RTS帧和CTS帧才比较划算。
CSMA/CD与CSMA/CA主要有如下区别:
- 1)CSMA/CD可以检测冲突,但无法避免;CSMA/CA发送数据的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收结点处就没有冲突,只能尽量避免。
- 2)传输介质不同。CSMA/CD用于总线形以太网,CSMA/CA用于无线局域网8O2.11a/b/g/n等。
- 3)检测方式不同。CSMA/CD通过电缆中的电压变化来检测;而CSMA/CA采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式。
总结:CSMA/CA在发送数据帧之前先广播告知其他站点,让其他站点在某段时间内不要发送数据帧,以免发生冲突。CSMA/CD在发送数据帧之前监听,边发送边监听,一旦发生冲突,就立即停止发送。
3.5.3 轮询访问:令牌传递协议
在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。典型的轮询访问控制协议是令牌传递协议。在令牌传递协议中,一个令牌(Token)沿着环形总线在各站之间依次传递。令牌是一个特殊的控制帧,它本身并不包含信息,仅控制信道的使用,确保同一时刻只有一个站独占信道。当环上的一个站希望发送帧时,必须等待令牌。站点只有取得令牌后才能发送帧,因此令牌环网络不会发生冲突(因为令牌只有一个)。站点发送完一帧后,应释放令牌,以便让其他站使用。因为令牌在网环上是按顺序依次传递的,所以对所有入网计算机而言,访问权是公平的。
令牌环网络中令牌和数据的传递过程如下:
1)当网络空闲时,环路中只有令牌帧在循环传递。
2)当令牌传递到有数据要发送的站点时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。
3)数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址。若目的地址和自己的地址相同,则接收站就复制该数据帧,以便进一步处理。
4)数据帧沿着环路传输,直到到达该帧的源站点,源站点收到自己发出去的帧后便不再转发。同时,通过检验返回的帧来查看数据传输过程中是否出错,若出错则重传。
5)源站点传送完数据后,重新产生一个令牌,并传递给下一站点,交出信道控制权。
令牌传递协议非常适合负载很高的广播信道,即多个结点在同一时刻发送数据概率很大的信道。若这样的信道采用随机介质访问控制,则发生冲突的概率很大,而采用令牌传递协议则可以很好地满足各站点间的通信需求。令牌传递协议既不共享时间,又不共享空间;它实际上在随机访问介质访问控制的基础上,限定了有权发送数据的结点只能有一个。
即使是广播信道也可通过介质访问控制机制,使广播信道变为逻辑上的点对点信道,所以说数据链路层研究的是“点到点”之间的通信。
3.5.4本节习题精选
一、单项选择题
二、综合应用题
3.6 局域网
3.6.1 局域网的基本概念和体系结构
局域网(Local Area Network,LAN)主要特点如下:
- 1)为一个单位所拥有,且地理范围和站点数目均有限。
- 2)所有站点共享较高的总带宽(即较高的数据传输速率)。
- 3)较低的时延和较低的误码率。
- 4)各站为平等关系而非主从关系。
- 5)能进行广播和多播。
局域网的特性主要由三个要素决定:拓扑结构、传输介质、介质访问控制方式,其中最重要的是介质访问控制方式,它决定着局域网的技术特性。
常见的局域网拓扑结构主要有以下4大类:①星形结构:②环形结构:③总线形结构:④星形和总线形结合的复合型结构。
局域网可以使用铜缆、双绞线和光纤等多种传输介质,其中双绞线为主流传输介质。
局域网的介质访问控制方法主要有CSMA/CD协议、令牌总线协议和令牌环协议,其中前两种协议主要用于总线形局域网,令牌环协议主要用于环形局域网。
三种特殊的局域网拓扑实现如下:
- 以太网(目前使用范围最广)。逻辑拓扑是总线形结构,物理拓扑是星形结构。
- 令牌环(Token Ring,IEEE 802.5)。逻辑拓扑是环形结构,物理拓扑是星形结构。
- FDDI(光纤分布数字接口,IEEE 802.8)。逻辑拓扑是环形结构,物理拓扑是双环结构。
IEEE 802标准定义的局域网参考模型只对应于OSI参考模型的数据链路层和物理层,并将数据链路层拆分为两个子层:逻辑链路控制(LLC)子层和介质访问控制(MAC)子层。与接入传输介质有关的内容都放在MAC子层,它向上层屏蔽对物理层访问的各种差异,主要功能包括:组帧和拆卸帧、比特传输差错检测、透明传输。LLC子层与传输介质无关,它向网络层提供无确认无连接、面向连接、带确认无连接、高速传送四种不同的连接服务类型。
因为在局域网市场中的垄断地位,以太网几乎成为局域网的代名词,而802委员会制定的 LLC子层作用已经不大,所以现在许多网卡仅装MAC协议而不装LLC协议。IEEE 802协议层与OSI参考模型的比较如图3.24所示。
3.6.2 以太网与EEE802.3
以太网是目前最流行的有线局域网技术。以太网逻辑上采用总线形拓扑结构,所有计算机共享同一条总线,信息以广播方式发送,以太网使用CSMA/CD方式对总线进行访问控制。
以太网采用两项措施来简化通信:①采用无连接的工作方式,既不对发送的数据帧编号,又不要求接收方发送确认,即以太网尽最大努力交付数据,提供的是不可靠服务,对差错的纠正则由高层完成:②发送的数据都使用曼彻斯特编码的信号,每个码元的中间出现一次电压转换,接收方利用这种电压转换方便地将位同步信号提取出来。
1.以太网的传输介质与网卡
以太网常用的传输介质有4种:粗缆、细缆、双绞线和光纤,它们的适用情况见表3.2。
[!NOTE] 在上述标准中,10指标准的速率为1OMb/s;Base指基带以太网;早期标准Base之后的5或2指单段最大传输距离不超过500m或185m,Base之后的T指双绞线,F指光纤.
计算机与外界局域网的连接是通过主板上嵌入的一块网络适配器(Adapter)[又称网络接口卡(Network Interface Card,NIC)]实现的。适配器上装有处理器和存储器,工作在数据链路层。适配器和局域网的通信是通过电缆或双绞线以串行方式进行的,而适配器和计算机的通信则是通过计算机的I/O总线以并行方式进行的。因此,适配器的重要功能就是进行数据的串并转换。
适配器不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码及数据缓存等功能。当适配器收到正确的帧时,就使用中断来通知该计算机,并交付协议栈中的网络层。当计算机要发送IP数据报时,就由协议栈把P数据报向下交给适配器,组帧后发送到局域网。
2.以太网的MAC地址
IEEE 802标准为局域网规定了一种48位的全球地址,是指局域网上的每台计算机中固化在适配器的ROM中的地址,称为物理地址或MAC地址(因为这种地址用在MAC帧中),这个地址用于控制主机在网络上的数据通信。全世界所有的局域网适配器都具有不同的地址,一台计算机只要没有更换适配器,不管其地理位置如何变化,其MAC地址都不会变化。
MAC地址长6字节,一般用由连字符(或冒号)分隔的12个十六进制数表示,如02-60-8c-e4-b1-21。高24位为厂商代码,低24位为厂商自行分配的适配器序列号。
当路由器通过适配器连接到局域网时,适配器上的MAC地址就用来标志路由器的某个接口。路由器若同时连接到两个网络上,则它需要两个适配器和两个MAC地址。
适配器从网络上每收到一个MAC帧,首先都要用硬件检查MAC帧中的目的地址。若是发往本站的帧,则收下,否则丢弃该帧。这里“发往本站的顿”包括以下三种帧:
1)单播顿(一对一),即收到的帧的目的地址与本站的MAC地址相同。
2)广播帧(一对全体),即发送给本局域网上所有站点的(全1地址)。
3)多播帧(一对多),即发送给本局域网上一部分站点的帧。
3.以太网的MAC帧
以太网MAC帧格式有两种标准:DIX Ethernet V2标准(即以太网V2标准)和IEEE 802.3标准。这里只介绍最常用的以太网V2的MAC帧格式,如图3.25所示。 在帧前面插入的8字节前导码分为两个字段:第一个字段是7字节的前同步码,用来实现 MAC帧的比特同步;第二个字段是1字节的帧开始定界符,表示后面的信息就是MAC帧。
[!NOTE] 以太网帧不需要帧结束定界符,因为当以太网传送帧时,各帧之间必须有一定的间隙。因此,接收方只要找到顿开始定界符,其后面连续到达的比特流就都属于同一个顿。实际上,以太网采用了违规编码法的思想,因为以太网使用曼彻斯特编码,所以每个码元中间都有一次电压的跳变。发送方发完一个帧后,发送方网络接口上的电压不再变化,这样接收方就能很容易地找到帧的结束位置,这个位置往前数4字节就是FCS字段,于是就能确定数据字段的结束位置。
目的地址:6字节,帧在局域网上的目的适配器的MAC地址
源地址:6字节,传输帧到局域网上的源适配器的MAC地址。
类型:2字节,指出数据字段中的数据应交给哪个上层协议处理,如网络层的IP协议。
数据:46~1500字节,承载上层的协议数据单元(如P数据报)。以太网的最大传输单元是 1500字节,若P数据报超过1500字节,则必须将该P数据报分片。此外,由于CSMA/CD算法的限制,以太网帧必须满足最小长度是64字节,当数据字段的长度小于46字节时,MAC子层就在数据字段的后面加一个整数字节的填充字段,以确保帧长不小于64字节。
[!NOTE] 46是怎么来的?由CSMA/CD可知以太网帧的最短帧长为64B,而MAC帧的首部和尾部的长度为18字节,所以数据字段最短为64-18=46字节
检验码(FCS):4字节,检验范围从目的地址段到数据字段,算法采用32位CRC码,不但要检验MAC帧的数据部分,而且要检验目的地址、源地址和类型字段,但不检验前导码。
802.3帧格式与以太网V2帧格式的不同之处是,用长度域替代了V2帧中的类型域,指出了数据域的长度。在实践中,前述长度/类型两种机制可以并存,因为IEEE 802.3数据段的最大字节数是1500,所以长度段的最大值是1500,于是从1501到65535的值可用于类型段标识符。
4.高速以太网
速率达到或超过100Mb/s的以太网称为高速以太网,表3.3列出了几种高速以太网技术。
- (1)100BASE-T以太网
(2)吉比特以太网
(3)10吉比特以太网
以太网从10Mb/s到10Gb/s的演进证明了以太网是可扩展的(从10Mb/s到10Gb/s)、灵活的(多种传输介质、全半双工、共享交换),且易于安装,稳健性好。
3.6.3 IEEE802.11无线局域网
1.无线局域网的组成
无线局域网可分为两大类:有固定基础设施的无线局域网和无固定基础设施的移动自组织网络。所谓“固定基础设施”,是指预先建立的、能覆盖一定地理范围的固定基站。
(1)有固定基础设施无线局域网
2.802.11局域网的MAC帧
802.11帧共有三种类型,即数据帧、控制帧和管理帧。数据帧的格式如图3.28所示。
802.11数据帧由以下三部分组成:
- 1)MAC首部,共30字节。帧的复杂性都在MAC首部。
- 2)帧主体,即帧的数据部分,不超过2312字节。它比以太网的最大长度长很多。
- 3)帧检验序列FCS是MAC尾部,共4字节。
802.11帧的MAC首部中最重要的是4个地址字段(都是MAC地址)。这里仅讨论前三个地址(地址4用于自组网络)。这三个地址的内容取决于帧控制字段中的“去往AP”和“来自AP”这两个字段的数值。表3.4中给出了802.11帧的地址字段最常用的两种情况。
地址1是直接接收数据帧的结点地址,地址2是实际发送数据帧的结点地址。
1)现在假定从一个BSS中的A站向B站发送数据帧。在A站发往AP的数据帧的帧控制字段中,“去往AP=1”而“来自AP=0”:地址1是AP的MAC地址,地址2是A站的MAC地址,地址3是B站的MAC地址。注意,“接收地址”与“目的地址”并不等同。
2)AP接收到数据帧后,转发给B站,此时在数据帧的帧控制字段中,“去往AP=0”而“来自AP=1”;地址1是B站的MAC地址,地址2是AP的MAC地址,地址3是A站的MAC地址。注意,“发送地址”与“源地址”也不等同。
对这三个地址的理解方法如下:地址1和地址2分别是无线通信中信道两端的接收地址和发送地址。当主机发往AP时,接收地址不是实际的目的地址,因此用地址3来存放实际的目的地址;当AP发往主机时,发送地址不是实际的源地址,因此用地址3来存放实际的源地址。下面讨论一种更复杂的情况。在图3.29中,两个AP有线连接到路由器,现在路由器要向A站发送数据。路由器是网络层设备,它看不见链路层的AP,只认识A站的IP地址。而AP是链路层设备,它只认识MAC地址,而不认识IP地址。
1)路由器从P数据报获知A站的IP地址,并用ARP获取A站的MAC地址。获取A站的MAC地址后,路由器接口R1将该P数据报封装成802.3帧(802.3帧只有两个地址),该帧的源地址字段是R1的MAC地址,目的地址字段是A站的MAC地址。
2)AP收到该802.3帧后,将该802.3帧转换为802.11帧,在帧控制字段中,“去往AP=0而“来自AP=1”;地址1是A站的MAC地址,地址2是AP的MAC地址,地址3是R1的MAC地址。这样,A站就可以确定(从地址3)将数据报发送到子网中的路由器接口的MAC地址。
现在考虑从A站向路由器接口R1发送数据的情况。
1)A站生成一个802.11帧,在帧控制字段中,“去往AP=1”而“来自AP=0”:地址1是AP的MAC地址,地址2是A站的MAC地址,地址3是R1的MAC地址。
2)AP收到该802.11帧后,将其转换为802.3帧。该帧的源地址字段是A站的MAC地址,目的地址字段是R1的MAC地址。
由此可见,地址3在BSS和有线局域网互连中起关键作用,它允许AP在构建以太网帧时确定目的MAC地址。
3.6.4VLAN基本概念与基本原理
一个以太网是一个广播域,当一个以太网中包含的计算机太多时,往往会导致:
- 以太网中出现大量的广播帧,特别是经常使用的ARP和DHCP协议(第4章)。
- 一个单位的不同部门共享一个局域网,对信息保密和安全不利。
通过虚拟局域网(Virtual LAN,VLAN),可将一个较大的局域网分割成一些较小的与地理位置无关的逻辑上的VLAN,而每个VLAN是一个较小的广播域。有以下三种划分VLAN的方式:
- 1)基于接口。将交换机的若干接口划为一个逻辑组,这种方法最简单、最有效,若主机离开了原来的接口,则可能进入一个新的子网。
- 2)基于MAC地址。按MAC地址将一些主机划分为一个逻辑子网,当主机的物理位置从一个交换机移动到另一个交换机时,它仍属于原来的子网。
- 3)基于P地址。根据网络层地址或协议划分VLAN,这样的VLAN可以跨越路由器进行扩展,将多个局域网的主机连接在一起。
802.3ac标准定义了支持VLAN的以太网帧格式的扩展。它在以太网帧中插入一个4字节的标识符(插在源地址字段和类型字段之间),称为VLAN标签,用来指明发送该帧的计算机属于哪个虚拟局域网。插入VLAN标签的帧称为802.1Q帧,如图3.30所示。因为VLAN帧的首部增加了4字节,所以以太网的最大帧长从原来的1518字节变为1522字节。
VLAN标签的前两个字节总是置为0x8100,表示这是一个802.1Q帧。在VLAN标签的后两个字节中,前4位实际上并没什么作用,这里不讨论,后12位是该VLAN的标识符VID,它唯一地标识该802.1Q帧属于哪个VLAN。12位的VID可识别4096个不同的VLAN。插入VLAN标签后,802.1Q帧最后的FCS必须重新计算。
如图3.31所示,交换机1连接7台计算机,该局域网划分为两个虚拟局域网VLAN-10和VLAN-20,这里的10和20就是802.1Q帧中的VD字段的值,由交换机管理员设定。各主机并不知道自己的VID值(但交换机必须知道),主机与交换机之间交互的都是标准以太网帧。一个VLAN的范围可以跨越不同的交换机,前提是所用的交换机能够识别和处理VLAN。交换机2连接5台计算机,并与交换机1相连。交换机2中的2台计算机加入VLAN-10,另外3台计算机加入VLAN-20。这两个VLAN虽然都跨越了两个交换机,但各自都是一个广播域。
连接两个交换机接口之间的链路称为汇聚链路或干线链路。
假定A站向B站发送帧,交换机1根据帧首部的目的MAC地址,识别B站属于本交换机管理的VLAN-10,因此就像在普通以太网中那样直接转发帧。假定A站向E站发送帧,交换机1必须把帧转发到交换机2,但在转发前,要插入VLAN标签,否则交换机2就不知道应把帧转发给哪个VLAN。因此,在于线链路上传送的帧是802.1Q帧。交换机2在向E站转发帧之前,要拿走已插入的VLAN标签,因此E站收到的帧是A站发送的标准以太网帧,而不是802.1Q帧。若A站向C站发送帧,则情况就复杂了,因为这是在不同网络之间的通信,虽然A站和C站都连接到同一个交换机,但是它们已处在不同的网络中(VLAN-10和VLAN-20),需要通过上层的路由器来解决,也可在交换机中嵌入专用芯片进行转发,以便在交换机中实现第3层的转发功能。
虚拟局域网只是局域网为用户提供的一种服务,并不是一种新型局域网。
3.6.5 本节习题精选
单项选择题
3.7 广域网
3.7.1广域网的基本概念
广域网(Wide Area Network,WAN)由一些结点交换机(注意不是路由器,结点交换机和路由器都用来转发分组,它们的工作原理也类似。结点交换机在单个网络中转发分组,而路由器在多个网络构成的互联网中转发分组)及连接这些交换机的链路组成。结点交换机的功能是存储并转发分组。结点之间都是点到点连接,但为了提高网络的可靠性,通常一个结点交换机往往与多个结点交换机相连。 从层次上考虑,广域网和局域网的区别很大,因为局域网使用的协议主要在数据链路层(还有少量在物理层),而广域网使用的协议主要在网络层。怎么理解“局域网使用的协议主要在数据链路层,而广域网使用的协议主要在网络层”这句话呢?若网络中的两个结点要进行数据交换,则结点除了要给出数据,还要给数据“包装”上一层控制信息,用于实现传输控制等功能。若这层控制信息是数据链路层协议的控制信息,则称使用了数据链路层协议:若这层控制信息是网络层的控制信息,则称使用了网络层协议。
广域网和局域网的区别与联系见表3.5。 在通信线路质量较差的年代,能实现可靠传输的高级数据链路控制(HDLC)成为当时比较流行的数据链路层协议。但对现在误码率很低的点对点有线链路,更简单的点对,点协议(PPP)则是目前使用最广泛的数据链路层协议。HDLC己从最新大纲中删除,所以不再介绍。
3.7.2PPP协议
点对点协议(Point-to-Point Protocol,PPP)是现在最流行的点对点链路控制协议。主要有两种应用:①用户通常都要连接到某个ISP才能接入互联网,PPP协议就是用户计算机与ISP通信时所用的数据链路层协议;②广泛用于广域网路由器之间的专用线路。
PPP协议有三个组成部分:
- 1)一个链路控制协议(LCP)。用来建立、配置、测试数据链路连接,以及协商一些选项。
- 2)一套网络控制协议(NCP)。PPP协议允许采用多种网络层协议,每个不同的网络层协议要用一个相应的NCP来配置,为网络层协议建立和配置逻辑连接。
- 3)一种将P数据报封装到串行链路的方法。P数据报在PPP帧中就是其信息部分,这个信息部分的长度受最大传送单元(MTU)限制。
PPP帧的格式如图3.33所示,首部和尾部分别为4个字段和2个字段。
首部和尾部各有一个标志字段(F),规定为0x7E(01111110),它表示一个帧的开始和结束,即PPP帧的定界符。当标志字段出现在信息段中时,就必须采取一些措施使这种形式上和标志字段一样的比特组合不出现在信息段中。当PPP使用异步传输时,采用字节填充法,使用的转义字符是0x7D(01111101)。当PPP使用同步传输时,采用零比特填充法来实现透明传输。
地址字段(A)占1字节,规定为OxFF,控制字段(C)占1字节,规定为0x03,这两个字段的意义暂未定义。PPP是面向字节的,因此所有PPP帧的长度都是整数个字节。
第四个字段是协议段,占2字节,它表示信息段运载的是什么种类的分组。若为0x0021,则信息字段是P数据报。若为OxC021,则信息字段是PPP链路控制协议(LCP)的数据。
第五段信息段的长度是可变的,长度为0~1500字节。
[!NOTE] 因为PPP是,点对点的,并不是总线形,所以无须使用CSMA/CD协议,自然就不会有最短帧长的限制,所以信息段占0~1500字节,而不是46~1500字节。
第六个字段是帧检验序列(FCS),占2字节,是使用CRC检验的冗余码。
图3.34给出了PPP协议的状态图。具体解释如下:
1)当处于链路静止状态时,通信双方不存在物理层的连接。
2)当链路一方检测到载波信号并建立物理连接时,进入链路建立状态。
3)在链路建立状态下,链路控制协议(LCP)开始协商一些配置选项(包括最大帧长、鉴别协议等)。若协商成功,则进入鉴别状态。若协商失败,则退回到链路静止状态。
4)协商成功后,双方就建立了LCP链路,接着进入“鉴别”状态。若双方无须鉴别或鉴别身份成功,则进入网络层协议状态。若鉴别失败,则进入链路终止状态。
5)处于网络层协议状态后,双方采用NCP配置网络层,配置协商成功后,进入链路打开状态。
6)只要链路处于打开状态,双方就可进行数据通信。
7)数据传输结束后,链路一方发出终止请求且在收到对方发来的终止确认后,或者链路出现故障时,进入链路终止状态。载波停止后,回到链路静止状态。
PPP协议的特点如下:
- 1)PPP不使用序号和确认机制,只保证无差错接收(CRC检验),因此是不可靠服务。
- 2)PPP只支持全双工的点对点链路,不支持多点线路。
- 3)PPP的两端可以运行不同的网络层协议,但仍可使用同一个PPP进行通信。
- 4)PPP是面向字节的,所有PPP帧的长度都是整数个字节。
3.7.3本节习题精选
单项选择题
3.8 数据链路层设备
*3.8.1网桥的基本概念
3.8.2 以太网交换机
1.交换机的原理和特点
以太网交换机也称二层交换机,二层是指以太网交换机工作在数据链路层。以太网交换机实质上是一个多接口的网桥,它能将网络分成小的冲突域,为每个用户提供更大的带宽。对于传统使用集线器的共享式10Mb/s以太网,若共有N个用户,则每个用户的平均带宽为总带宽(10Mb/s)的1/N。使用以太网交换机(全双工方式)连接这些主机时,虽然从每个接口到主机的带宽还是10Mb/s,但是因为一个用户通信时是独占带宽的(而不是和其他网络用户共享传输介质带宽的),所以拥有N个接口的交换机的总容量为N×10Mbs。这正是交换机的最大优点。
以太网交换机的特点:
- 1)当交换机的接口直接与主机或其他交换机连接时,可工作在全双工方式,并能同时连通多对接口,使每对相互通信的主机都能像独占通信介质那样,无冲突地传输数据,这样就不需要使用CSMA/CD协议。
- 2)当交换机的接口连接集线器时,只能使用CSMA/CD协议且只能工作在半双工方式。当前的交换机和计算机中的网卡都能自动识别上述两种情况。
- 3)交换机是一种即插即用设备,其内部的帧转发表是通过自学习算法,基于网络中各主机间的通信,自动地逐渐建立的。
- 4)交换机因为使用专用交换结构芯片,交换速率较高。
- 5)交换机独占传输介质的带宽。
以太网交换机主要采用两种交换模式:
1)- 直通交换方式。只检查帧的目的MAC地址,以决定该帧的转发接口。这种方式的交换时延非常小,缺点是它不检查差错就直接转发,因此可能将一些无效帧转发给其他站。直通交换方式不适用于需要速率匹配、协议转换或差错检测的线路。 2)- 存储转发交换方式。先将接收到的帧缓存到高速缓存器中,并检查数据是否正确,确认无误后通过查找表转换为输出接口,以便将该帧发送出去。若发现帧有错,则将其丢弃。优点是可靠性高,且能支持不同速率接口间的转换,缺点是时延较大。交换机一般都具有多种速率的接口,如10Mbs、100Mb/s的接口,以及多速率自适应接口。
2.交换机的自学习功能
决定一个帧是转发到某个接口还是丢弃它称为过滤。决定一个帧应被移至哪个接口称为转发。交换机的过滤和转发借助交换表(switch table)完成。交换表中的一个表项至少包含:①一个MAC地址:②连通该MAC地址的接口。例如,在图3.35中,以太网交换机有4个接口,各连接一台计算机,MAC地址分别为A、B、C和D,交换机的交换表最初为空。
A先向B发送一帧,从接口1进入交换机。交换机收到帧后,查找交换表,找不到MAC地址为B的表项。然后,交换机将该帧的源地址A和接口1写入交换表,并向除接口1外的所有接口广播这个帧(该帧就是从接口1进入的,因此不应将它再从接口1转发出去)。C和D丢弃该帧,因为目的地址不对。只有B才收下这个目的地址正确的帧。交换表中写入(A,1)后,从任何接口收到目的地址为A的帧都应从接口1转发出去。这是因为,既然A发出的帧从接口1进入交换机,那么从接口1转发出去的帧也应能到达A。
接下来,假定B通过接口3向A发送一帧,交换机查找交换表后,发现有表项(A,1),将该帧从接口1转发给A。显然,此时已没有必要再广播收到的帧。将该帧的源地址B和接口3写入交换表,表明以后若有发送给B的帧,则应从接口3转发出去。
经过一段时间后,只要C和D也向其他主机发送帧,交换机就把C和D及对应的接口号写入交换表。这样,转发给任何主机的帧,就都能很快地在交换表中找到相应的转发接口。
因为交换机所连的主机会随时变化,所以需要更新交换表中的表项。为此,交换表中的每个表项都设有一定的有效时间,过期表项将被自动删除。这就保证了交换表中的数据符合当前网络的实际状况。这种自学习算法使得交换机能即插即用,而不必手工配置,因此非常方便。
3.共享式以太网和交换式以太网的对比
假设交换机已通过自学习算法逐步建立了完整的转发表,下面举例说明使用集线器的共享式以太网与全部使用交换机的交换式以太网的区别。
- 1)主机发送普通帧。对于共享式以太网,集线器将帧转发到其他所有接口,其他各主机中的网卡根据帧的目的MAC地址决定接收或丢弃该帧。对于交换式以太网,交换机收到帧后,根据帧的目的MAC地址和自身的交换表将帧明确地转发给目的主机。
- 2)主机发送广播帧。对于共享式以太网,集线器将帧转发到其他所有接口,其他各主机中的网卡检测到帧的目的MAC地址是广播地址时,就接收该帧。对于交换式以太网,交换机检测到帧的目的MAC地址是广播地址,于是从其他所有接口转发该帧,其他各主机收到该广播帧后,就接收该帧。两种情况从效果上看是相同的,但它们的原理并不相同。
- 3)多对主机同时通信。对于共享式以太网,当多对主机同时通信时,必然产生冲突。对于交换式以太网,交换机能实现多对接口的高速并行交换,因此不会产生冲突。
可见,集线器既不隔离广播域,又不隔离冲突域,而交换机不隔离广播域,但隔离冲突域。
3.8.3 本节习题精选
单项选择题
3.9 本章小结及疑难点
1.说明用n比特进行编号时,若接收窗口的大小为1,则仅在发送窗口的大小WT ≤2n-1时,连续ARQ协议才能正确运行。
假设用3比特进行编号,可表示8个不同的序号,发送窗口的最大值似乎可以为8。但是,实际上,发送窗口的大小设为8将使协议在某些情况下无法工作。下面来证明这一点。
设发送窗口为8,发送方发送完0~7号共8个数据帧后,暂停发送。假定这8个数据帧均已正确到达接收方,且接收方对每个数据帧都发回了确认帧。下面考虑两种不同的情况。
第一种情况:所有确认帧都正确地到达发送方,因此发送方接着又发送8个新的数据帧,其编号应是07。注意,序号是循环使用的。因此序号虽然相同,但8个帧都是新的帧。
第二种情况:所有确认帧都丢失。经过一段超时计时器控制的时间后,发送方重传这8个旧数据帧,其编号仍为0~7。
于是,当接收方第二次收到编号为0~7的8个数据帧时,就无法判定这是8个新数据帧还是8个重传的旧数据帧。因此,将发送窗口设为8显然是不行的。
2.为什么PPP协议不使用帧的编号和确认机制来实现可靠传输?
PPP不使用序号和确认机制是出于以下考虑:
若使用能够实现可靠传输的数据链路层协议(如HDLC),开销就会增大。当数据链路层出现差错的概率不大时,使用比较简单的PPP较为合理。
在因特网环境下,PPP的信息字段放入的数据是P数据报。假定我们采用了能实现可靠传输但十分复杂的数据链路层协议,当数据帧在路由器中从数据链路层上升到网络层时,仍有可能因网络拥塞而被丢弃。因此,数据链路层的可靠传输并不能保证网络层的传输也是可靠的。
PPP在帧格式中有帧检验序列FCS字段。对于每个收到的帧,PPP都要使用硬件进行CRC检验。若发现差错,则丢弃该帧(一定不能把有差错的帧交给上一层)。端到端的差错控制最后由高层协议负责。因此,PPP可以保证无差错接收。
3.在标准以太网中,为什么说若有冲突,则冲突一定发生在冲突窗口内?或者说一个帧若在冲突窗口内没有发生冲突,则该帧不会再发生冲突?
结点在发送数据之前,先监听信道是否有载波,若有,表示信道忙,则继续监听,直至检测到信道空闲为止。一个数据帧在从结点A向最远结点的传输过程中,若有其他结点也在发送数据,则会发生冲突,冲突后的信号经过冲突窗口时间后传回结点A,结点A会检测到冲突,所以说若有冲突,则一定发生在冲突窗口内,若在冲突窗口内没有发生冲突,之后若其他结点再要发送数据,则会监听到信道忙,而不会发送数据,从而不会再发生冲突。
4.一个以太网的速率从10Mb/s升级到100Mb/s,满足CSMA/CD冲突条件。为使其正常工作,需做哪些调整?为什么?
100 BaseT以太网与10Mb/s以太网的帧格式相同,唯一不同的参数是帧间最小间隔时间,10Mb/s以太网的帧间最小间隔时间是9.6μs,100 BaseT以太网的帧间最小间隔时间是0.96μs。此外,为了保持最短帧长不变,将一个网段的最大长度减小到100m。所有这些调整的原因是速率提高到了原速度的10倍。
5.关于物理层、数据链路层、网络层设备对于隔离冲突域和广播域的总结。
脚注分割线
网桥的基本概念. 使用集线器在物理层扩展以太网会形成更大的冲突域。为了避免这个问题,可以使用网桥在数据链路层扩展以太网,而原来的每个以太网称为一个网段。使用网桥进行扩展时,不会将原本独立的两个冲突域合并成一个更大的冲突域,这是因为网桥具有识别帧和转发帧的能力,根据帧首部中的目的MAC地址和网桥的帧转发表来转发或丢弃所收到的帧,起到了过滤通信量的功能。因为各个网段是相对独立的,所以一个网段的故障不影响另一个网段的运行。
网络1和网络2通过网桥连接后,网桥接收网络1发送的数据帧,检查数据帧中的地址,若是网络2的地址,则转发给网络2;若是网络1的地址,则将其丢弃,因为源站和目的站处在同一个网段,目的站能够直接收到这个帧,而不需要借助网桥转发。
网桥是早期的数据链路层设备,现已被以太网交换机取代,最新大纲中已将其删除。 ↩
广域网. 通常是指覆盖范围很广(远超一个城市的范围)的长距离网络,任务是长距离运送主机所发送的数据。连接广域网各结点交换机的链路都是高速链路,广域网首要考虑的问题是通信容量必须足够大,以便支持日益增长的通信量。
广域网不等于互联网。互联网可以连接不同类型的网络,通常使用路由器来连接。图3.32显示了由相距较远的局域网通过路由器与广域网相连而成的一个覆盖范围很广的互联网。因此,局域网可以通过广域网与另一个相隔很远的局域网通信。 ↩
无固定基础设施移动自组织网络. 另一种无线局域网是无固定基础设施的无线局域网,又称自组网络(ad hoc network)。自组网络没有上述基本服务集中的AP,而有由一些平等状态的移动站相互通信组成的临时网络(见图3.27)。各结点之间地位平等,中间结点都为转发结点,因此都具有路由器的功能。
自组网络通常是这样构成的:一些可移动设备发现在它们附近还有其他的可移动设备,且要求和其他移动设备进行通信。自组网络中的每个移动站都要参与网络中其他移动站的路由发现和维护,同时由移动站构成的网络拓扑可能随时间变化很快,因此在固定网络中行之有效的一些路由选择协议对移动自组网络已不适用,需引起特别的关注。
自组网络和移动IP并不相同。移动IP技术使漫游的主机可用多种方法连接到因特网,其核心网络功能仍然基于固定网络中一直使用的各种路由选择协议。而自组网络是将移动性扩展到无线领域中的自治系统,具有自己特定的路由选择协议,且可以不和因特网相连。 ↩
有固定基础设施无线局域网. 对于有固定基础设施的无线局域网,IEEE制定了无线局域网的802.11系列协议标准,包括802.11a/b/g/n等。802.11标准使用星形拓扑,其中心称为接入,点(Access Point,AP),在MAC层使用CSMA/CA协议。使用802.11系列协议的局域网又称Wi-Fi。802.11标准规定无线局域网的最小构件是基本服务集(Basic Service Set,BSS)。一个基本服务集包括一个接入点和若干移动站。各站在本BSS内的通信,或与本BSS外部站的通信,都必须通过本BSS的AP。上面提到的AP就是基本服务集中的基站(base station)。安装AP时,必须为其分配一个不超过32字节的服务集标识符(Service Set IDentifier,SSID)和一个信道。SSID是指使用该AP的无线局域网的名称。基本服务集覆盖的地理范围称为基本服务区(Basic Service Area,BSA),无线局域网的基本服务区的直径一般不超过100m。
基本服务集可以是孤立的,也可通过AP连接到一个分配系统(Distribution System,DS),然后连接到另一个基本服务集,构成一个扩展的服务集(Extended Service Set,ESS)。分配系统的作用是使扩展的服务集对上层的表现就像一个基本服务集。ESS还可通过一种称为Portal(门户)的设备为无线用户提供到有线连接的以太网接入。门户的作用相当于网桥。在图326中,移动站A若要和另一个基本服务集中的移动站B通信,则必须经过两个接入点AP1,和AP2,即A→AP1→AP2→B,注意AP1到AP2的通信是使用有线传输的。
当移动站A从某个基本服务集漫游到另一个基本服务集时(图3.26中的A'),仍可保持与另一个移动站B的通信。但A在不同的基本服务集中使用的AP改变了。 ↩
10吉比特以太网. 10吉比特以太网的帧格式与10Mb/s、100Mb/s和1Gb/s以太网的帧格式完全相同,还保留了802.3标准规定的以太网最小帧长和最大帧长,以便升级和向后兼容。10吉比特以太网只工作在全双工方式,不存在争用问题,当然也不使用CSMA/CD协议。 ↩
吉比特以太网. 吉比特以太网又称千兆以太网,允许在1Gb/s速率下以全双工和半双工两种方式工作。使用802.3协议规定的帧格式。使用双绞线或光纤作为传输介质。在半双工方式下使用CSMA/CD协议,而在全双工方式不使用CSMA/CD协议。与10BASE-T和100BASE-T技术向后兼容。 ↩
100BASE-T以太网. 100BASE-T是在双绞线上传送10OMb/s基带信号的星形拓扑以太网,它仍然使用CSMA/CD协议,又称快速以太网。100BASE-T既支持全双工方式,又支持半双工方式,可在全双工方式下工作而无冲突发生,因此在全双工方式下不使用CSMA/CD协议。
100BASE-T的MAC帧格式仍然是802.3标准规定的帧格式。保持最短帧长不变,但将一个网段的最大长度减小到100m。帧间最小间隔从原来的9.6μs改为0.96μs。 ↩
以太网. 以太网规约的第一个版本是DXV1,它由DEC、Intel和Xerox联合提出。之后,它被修改为第二版规约DIX Ethernet V2,是世界上第一个局域网产品的规约。在此基础上,IEEE 802委员会的IEEE 802.3工作组制定了第一个IEEE的以太网标准IEEE 802.3。
严格来说,以太网是指符合DIX Ethernet V2标准的局域网,但DIX Ethernet V2标准与IEEE 802.3标准的差别很小,因此通常将802.3局域网简称为以太网。 ↩
局域网. 是指在一个较小的地理范围(如一所学校)内,将各种计算机、外部设备和数据库系统等通过双绞线、同轴电缆等连接介质互相连接起来,组成资源和信息共享的计算机互连网络。 ↩
p-坚持CSMA. p-坚持CSMA只适用于时分信道,其基本思想是:当站点要发送数据时,首先监听信道:若信道忙,则持续监听(即等到下一个时隙再监听),直至信道空闲;若信道空闲,则以概率p发送数据,以概率1-p推迟到下一个时隙再继续监听:直到数据发送成功。
p-坚持CSMA检测到信道空闲后,以概率p发送数据,以概率1-p推迟到下一个时隙继续监听,目的是降低1-坚持CSMA中多个站点检测到信道空闲时同时发送帧的冲突概率;采用坚持“监听”的目的是,克服非坚持CSMA中因随机等待造成的延迟时间较长的缺点。因此,p-坚持CSMA协议是非坚持CSMA协议和1-坚持CSMA协议的折中。 ↩
非坚持CSMA. 非坚持CSMA的基本思想是:当站点要发送数据时,首先监听信道:若信道空闲,则立即发送数据:若信道忙,则放弃监听,等待一个随机的时间后,再重新监听。
非坚持CSMA协议在监听到信道忙时就放弃监听,因此降低了多个站点等待信道空闲后同时发送数据导致冲突的概率,但也增加了数据在网络中的平均时延。 ↩
1-坚持CSMA. 1-坚持CSMA的基本思想是:当站点要发送数据时,首先监听信道:若信道空闲,则立即发送数据;若信道忙,则继续监听直至信道空闲。“坚持”的含义是监听到信道忙时,继续坚持监听信道;“1”的含义是监听到信道空闲时,立即发送帧的概率为1。 ↩
时隙ALOHA协议. 时隙ALOHA协议同步各站点的时间,将时间划分为一段段等长的时隙(Slot),规定站点只能在每个时隙开始时才能发送帧,发送一帧的时间必须小于或等于时隙的长度。这样做避免了用户发送数据的随意性,降低了产生冲突的可能性,提高了信道的利用率。图3.20表示两个站的时隙ALOHA协议的工作原理。每个帧到达后,一般都要在缓存中等待一段小于时隙T。的时间,才能发送出去。当在一个时隙内有两个或两个以上的帧到达时,在下一个时隙将产生冲突。冲突后重传的策略与纯ALOHA协议的情况相似。 ↩
纯ALOHA协议. 纯ALOHA协议的基本思想是,当总线形网络中的任何站点需要发送数据时,可以不进行任何检测就发送数据。若在一段时间内未收到确认,则该站点就认为传输过程中发生了冲突。发送站点需要等待一段时间后再发送数据,直至发送成功。在图3.19的例子中,当站1发送帧1时,其他站都未发送数据,所以站1的发送必定是成功的。但随后站2和站N-1发送的帧2和帧3在时间上重叠了一部分(即发生了冲突)。发生冲突的各站都必须进行重传,但并不能马上进行重传,因为这样做必然导致继续发生冲突。因此,让各站等待一段随机的时间,然后进行重传。若再次发生冲突,则需要再等待一段随机的时间,直到重传成功为止。图中其余一些帧的发送情况是,帧4发送成功,而帧5和帧6发生冲突。
纯ALOHA网络的吞吐量很低,为了克服这个缺点,便产生了时隙ALOHA协议。 ↩
码分复用(CDM). 码分复用(Code Division Multiplexing,CDM)是采用不同的编码来区分各路原始信号的一种复用方式。与FDM和TDM不同,它既共享信道的频率,又共享时间。
实际上,更常用的名词是码分多址(Code Division Multiple Access,CDMA),其原理是将每个比特时间再划分成m个短的时间槽,称为码片(Chip),通常m的值是64或128,下例中为简单起见,设m为8。每个站点被指派一个唯一的m位码片序列。发送1时,站点发送它的码片序列:发送0时,站点发送该码片序列的反码。当两个或多个站点同时发送时,各路数据在信道中线性相加。为了从信道中分离出各路信号,要求各个站点的码片序列相互正交。
简单理解就是,A站向C站发出的信号用一个向量来表示,B站向C站发出的信号用另一个向量来表示,两个向量要求相互正交。向量中的分量,就是所谓的码片。
下面举例说明CDMA的原理。 ↩
波分复用(WDM). 波分复用(Wavelength Division Multiplexing,WDM)即光的频分复用,它在一根光纤中传输多种不同波长(频率)的光信号,因为波长不同,各路光信号互不干扰,最后用光分用器将各路波长分解出来。因为光波处于频谱的高频段,有很大的带宽,所以可以实现多路的波分复用。 ↩
时分复用(TDM). 时分复用(Time Division Multiplexing,TDM)是指将信道的传输时间划分为一段段等长的时间片,称为TDM顿,每个用户在每个TDM帧中占用固定序号的时隙,每个用户所占用的时隙周期性地出现(其周期就是TDM的长度),所有用户在不同的时间占用同样的信道资源,如图3.18所示。TDM帧实际上是一段固定长度的时间,它与数据链路层的帧不是同一个概念。从某个时刻来看,时分复用信道上传送的仅是某对用户之间的信号:从某段时间来看,传送的是按时间分割的复用信号。因为时分复用是按固定次序给用户分配时隙的,当用户在某段时间暂无数据传输时,其他用户也无法使用这个暂时空闲的线路资源,所以时分复用后的信道利用率不高。统计时分复用(Statistic TDM,STDM)又称异步时分复用,它是对TDM的一种改进。STDM帧与TDM帧不同,它并不固定分配时隙,而按需动态分配时隙,当用户有数据要传送时,才会分配到STDM帧中的时隙,因此可以提高线路的利用率。例如,假设线路的数据传输速率为 6000b/s,3个用户的平均速率都为2000b/s,当采用TDM方式时,每个用户的最高速率为2000b/s,而在STDM方式下,每个用户的最高速率可达6000b/s。 ↩
频分复用(FDM). 频分复用(Frequency Division Multiplexing,FDM)是指将信道的总频带划分为多个子频带,每个子频带作为一个子信道,每对用户使用一个子信道进行通信,如图3.17所示。所有用户在同一时间占用不同的频带资源。每个子信道分配的频带可不相同,但它们的总和不能超过信道的总频带。在实际应用中,为了防止子信道之间互相干扰,相邻信道间还要加入“隔离频带”。 ↩
信道划分介质访问控制. 信道划分介质访问控制通过复用技术实现。所谓复用,是指在发送端把多个发送方的信号组合在一条物理信道上进行传输,在接收端把收到的复用信号分离出来,并发送给对应的接收方,如图3.16所示。当传输介质的带宽超过传输单个信号所需的带宽时,通过在一条介质上传输多个信号,还能提高传输系统的利用率。 ↩
信道利用率的分析. 信道利用率是指信道的效率。从时间角度看,信道效率是对发送方而言的,是指发送方在一个发送周期(从发送方开始发送分组到收到第一个确认分组所需的时间)内,有效发送数据的时间与整个发送周期之比。本节之所以使用分组的PDU名称而不使用帧,是为了更具通用性。 ↩
多帧滑动窗口与选择重传协议(SR). 为了进一步提高信道的利用率,可以设法只重传出现差错和计时器超时的数据帧,但此时必须加大接收窗口,以便先收下失序但正确到达且序号仍落在接收窗口内的那些数据帧,等到所缺序号的数据帧收齐后,再一并送交上层。这就是选择重传协议 。
为了使发送方仅重传出错的帧,接收方不能再采用累积确认,而要对每个正确接收的数据帧逐一进行确认。显然,选择重传协议比后退N帧协议更复杂,且接收方需要设置足够的帧缓冲区(帧缓冲区的数目等于接收窗口的大小而非序号数目,因为接收方不能接收序号在窗口下界以下或窗口上界以上的帧)来暂存那些失序但正确到达且序号落在接收窗口内的数据帧。每个发送缓冲区对应一个计时器,当计时器超时的时候,缓冲区的帧就重传。另外,选择重传协议还采用了比上述其他协议更有效的差错处理策略,即一旦接收方检测到某个数据帧出错,就向发送方发送一个否定帧NAK,要求发送方立即重传NAK指定的数据帧。在图3.12中,2号帧丢失后,接收方仍可正常接收并缓存之后收到的数据帧,待发送方超时重传2号帧并被接收方成功接收后,接收窗口就可向前移动,而当发送方收到2号帧的确认后,发送窗口就可向前移动。在某个时刻,接收方检测到10号帧出错,向发送方发出否定帧NAK10,在此期间接收方仍可正常接收并缓存之后收到的帧,发送方收到否定帧NAK10后立即重传10号帧。
选择重传协议的接收窗口W和发送窗口W都大于1,一次可以发送或接收多个帧。若采用比特对帧编号,需满足条件①:WR+WT ≤ 2 n(否则,在接收方的接收窗口向前移动后,若有一个或多个确认帧丢失,则发送方就会超时重传之前的旧数据帧,接收窗口内的新序号与之前的旧序号出现重叠,接收方就无法分辨是新数据帧还是重传的旧数据帧)。此外,还应满足条件②: WR ≤ WT(否则,若接收窗口大于发送窗口,则接收窗口永远不可能填满,接收窗口多出的空间就毫无意义)。由①和②不难得出WR ≤ 2n-1。一般情况下,WR和WT的大小是相同的。 ↩
多颅滑动窗口与后退N颅协议(GBN). 在后退N帧协议中,发送方可在未收到确认帧的情况下,将序号在发送窗口内的多个数据帧全部发送出去。后退N帧的含义是:发送方发送N个数据帧后,若发现这N个帧的前一个数据帧在计时器超时的时候仍未收到其确认信息,则该帧被判为出错或丢失,此时发送方不得不重传该出错帧及随后的N个帧。这意味着,接收方只允许按顺序接收帧。
如图3.11所示,发送方向接收方发送数据帧。发送方发完0号帧后,可以继续发送后续的1号帧、2号帧等。发送方每发送完一个数据帧,就要为该帧设置超时计时器。因为连续发送了许多帧,所以确认帧必须指明是对哪个帧的确认。为了降低开销,GBN协议允许接收方进行累积确认,即允许接收方不需要每收到一个正确的数据帧就立即发回一个确认帧,而可在连续收到多个正确的数据帧后,对最后一个数据帧发回确认信息,也就是说,对某个数据帧的确认就代表该数据帧和之前所有的帧均已正确无误地收到。ACKn表示对n号帧的确认,表示接收方已正确收到 n号帧及之前的所有帧,下次期望收到n+1号帧(也可能是0号帧)。接收方只按序接收数据帧。图中,虽然在有差错的2号帧之后接着收到了正确的6个数据帧,但接收方必须将这些帧丢弃。接收方虽然丢弃了这些未按序出现的无差错帧,但应重发已发送的最后一个确认帧ACK1(这是为了防止己发送的确认帧ACK1丢失)。若采用n比特对帧编号,则其发送窗口WT应满足1< WT ≤2n-1。若WT大于2n-1,则会造成接收方无法分辨新数据帧和旧数据帧(参考本章末的疑难点1)。后退N帧协议的接收窗口W=1,可保证按序接收数据帧。不难看出,后退N帧协议一方面因连续发送数据帧而提高了信道利用率,另一方面在重传时又必须重传原来已正确到达的帧(仅因这些帧的前面有一帧出错),因此这种做法会降低传送效率。当信道误码率较大时,后退N帧协议不一定优于停止-等待协议。 ↩
单帧滑动窗口与停止-等待协议(S-W). 在停止-等待协议中,发送方每次只能发送一个帧,当发送方收到接收方的确认帧之后,才可以发送下一个帧。从滑动窗口的角度看,停止-等待协议的发送窗口和接收窗口大小均为1。
在停止-等待协议中,除数据帧丢失外,还可能出现以下两种差错:①到达接收方的数据帧可能已遭破坏,接收方利用前面介绍的差错检测技术检出后,简单地将该帧丢弃。为了应付这种可能的情况,发送方装备了计时器。在一个帧发送后,发送方等待确认,当计时器超时的时候,若仍未收到确认,则重发该数据帧。如此重复,直到该数据帧正确到达为止。②数据帧正确而确认帧被破坏,此时接收方已收到正确的数据帧,但发送方收不到确认帧,因此发送方会重传已被接收的数据帧,接收方收到相同的数据帧时会丢弃该帧,并重传一个该帧对应的确认帧。
对于停止-等待协议,因为每发送一个数据帧就停止并等待,所以用1比特来编号就已足够。发送的帧交替地用0和1来标识,确认帧分别用ACK0和ACK1来表示,当收到的确认帧有误时,就重传已发送的数据帧。若连续出现相同序号的数据帧,则表明发送方进行了超时重传。若连续出现相同序号的确认帧,则表明接收方收到了重复帧。
此外,为了超时重传和判定重复帧的需要,发送方和接收方都要设置一个帧缓冲区。当发送方发送完数据帧时,必须在其发送缓存中保留该数据帧的副本,这样才能在出现差错时进行重传。只有在收到对方发来的确认帧ACK后,方可清除该副本。
停止-等待协议的信道利用率很低。为了提高传输效率,产生了连续ARQ协议(后退N帧协议和选择重传协议),发送方可连续发送多个帧,而不是每发完一个帧就停止等待确认。 ↩
奇偶检验码. 奇偶检验码是奇检验码和偶检验码的统称,是一种最基本的检错码。它由n-1位数据和1位检验位组成,检验位的取值(0或1)将使整个检验码中“1”的个数为奇数或偶数。 ↩